web-dev-qa-db-ja.com

xcopyがアクセス拒否を通知する原因は何ですか?

いずれかのソリューションのビルド後のタスクでは、xcopyを使用して、ビルドアーティファクトの共通ディレクトリにファイルを移動します。何らかの理由で、私のコンピューター(およびテストしたVM)で、xcopyが「アクセス拒否」で失敗します。問題を特定するために私が行ったことは次のとおりです。

  • 通常のコピーを試しました。これは機能します。
  • 問題のファイルのいずれも読み取り専用ではないことを再確認しました。
  • ソースフォルダーと宛先フォルダーの両方のアクセス許可を確認しました。私は両方を完全に制御できます。
  • VSビルドプロセスでファイルがロックされた場合に備えて、コマンドラインからxcopyを呼び出してみました。
  • UnlockerとProcessExplorerを使用して、ソースファイルにロックがないことを確認しました。

コンピューターを使って私を追い出すという妄想的な陰謀説以外に、私が見逃したことは何ですか?これは私の開発マシンとクリーンなVMで発生しますが、プロジェクトの他のユーザーでは発生しません発生します。

14
OwenP

問題が解決しました;パズルには2つのピースがあります。

/ Oスイッチは、Vistaで昇格する必要があります。また、Vistaではxcopyが廃止され、robocopyが優先されることに気付きました。今、私はこれについてビルドエンジニアと話し合っています。

15
OwenP

/ r =このオプションを使用して、宛先の読み取り専用ファイルを上書きします。宛先の読み取り専用ファイルを上書きするときにこのオプションを使用しない場合、「アクセスが拒否されました」というメッセージが表示され、xcopyコマンドの実行が停止します。

それがこのエラーに対する私の解決策でした。

ソース

12
Tamir

管理者としてXCOPYを実行する必要があります。これを回避する方法はありません。

管理者としてコピーを実行したくない場合は、代わりに [〜#〜] robocopy [〜#〜] を使用する必要があります。

ただし、ROBOCOPYでは、監査情報もコピーする/COPYALLスイッチを使用するのは非常に魅力的であり、「監査ユーザー権利の管理」が必要です。これにより、迅速な解決策として管理者として実行するように促されます。管理者としてコピーを実行したくない場合は、/COPYALL(または/Copy:DATSOU)を使用しないでくださいスイッチ。 UはaUditingを表すため、代わりに/Copy:DATSOを使用します。

また、NTFSからFATファイルシステムにコピーする場合、「NTFSセキュリティを宛先ディレクトリ/ファイルにコピー」する方法がないことにも注意してください。

3
iNoob

通常、これはファイルをロックする別のプロセスがあるために発生します。私はあなたのマシンが他のものとは異なるコア数/異なる速度を持っているに違いない。スリープを挿入して、問題が解決するかどうかを確認してください。

2
krosenvold

ファイルをIISフォルダーにコピーする場合は、バッチファイルを管理者として実行する必要があります。

0
Alper Ebicoglu

Windowsエクスプローラーでファイルを削除できる場合は、管理者特権のコマンドプロンプトを使用してみてください。 Windowsエクスプローラーがcmdを介した管理者権限を必要とする削除操作の許可をここで要求しない理由がわかりません。

0
sennett