いずれかのソリューションのビルド後のタスクでは、xcopyを使用して、ビルドアーティファクトの共通ディレクトリにファイルを移動します。何らかの理由で、私のコンピューター(およびテストしたVM)で、xcopyが「アクセス拒否」で失敗します。問題を特定するために私が行ったことは次のとおりです。
コンピューターを使って私を追い出すという妄想的な陰謀説以外に、私が見逃したことは何ですか?これは私の開発マシンとクリーンなVMで発生しますが、プロジェクトの他のユーザーでは発生しません発生します。
問題が解決しました;パズルには2つのピースがあります。
/ Oスイッチは、Vistaで昇格する必要があります。また、Vistaではxcopyが廃止され、robocopyが優先されることに気付きました。今、私はこれについてビルドエンジニアと話し合っています。
/ r =このオプションを使用して、宛先の読み取り専用ファイルを上書きします。宛先の読み取り専用ファイルを上書きするときにこのオプションを使用しない場合、「アクセスが拒否されました」というメッセージが表示され、xcopyコマンドの実行が停止します。
それがこのエラーに対する私の解決策でした。
管理者としてXCOPYを実行する必要があります。これを回避する方法はありません。
管理者としてコピーを実行したくない場合は、代わりに [〜#〜] robocopy [〜#〜] を使用する必要があります。
ただし、ROBOCOPYでは、監査情報もコピーする/COPYALL
スイッチを使用するのは非常に魅力的であり、「監査ユーザー権利の管理」が必要です。これにより、迅速な解決策として管理者として実行するように促されます。管理者としてコピーを実行したくない場合は、/COPYALL
(または/Copy:DATSOU
)を使用しないでくださいスイッチ。 UはaUditingを表すため、代わりに/Copy:DATSO
を使用します。
また、NTFSからFATファイルシステムにコピーする場合、「NTFSセキュリティを宛先ディレクトリ/ファイルにコピー」する方法がないことにも注意してください。
通常、これはファイルをロックする別のプロセスがあるために発生します。私はあなたのマシンが他のものとは異なるコア数/異なる速度を持っているに違いない。スリープを挿入して、問題が解決するかどうかを確認してください。
ファイルをIISフォルダーにコピーする場合は、バッチファイルを管理者として実行する必要があります。
Windowsエクスプローラーでファイルを削除できる場合は、管理者特権のコマンドプロンプトを使用してみてください。 Windowsエクスプローラーがcmdを介した管理者権限を必要とする削除操作の許可をここで要求しない理由がわかりません。