2009-03-18 36 views
12

私たちのソリューションのpostbuildタスクは、xcopyを使用してファイルをビルド成果物の共通ディレクトリに移動します。何らかの理由で、私のコンピュータ(およびテストしたVM)上でxcopyが "アクセス拒否"で失敗します。問題を特定して隔離しようとしてきたことは次のとおりです。xcopyによりアクセスが拒否された原因は何ですか?

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

私が見逃したのは、私を得るためにコンピュータを含む編集的な陰謀論以外のものですか?これは私の開発マシンとクリーンなVMで発生しますが、がプロジェクトの他の人には発生しません。

+0

xcopyプロセスがユーザーアカウントで実行されていますか? – NotMe

+0

実行しようとしているコマンドラインと正確なエラーメッセージを投稿してください。 –

答えて

13

問題が解決しました。パズルには2つの部分があります。

/OスイッチはVistaで標高を必要とします。また、私はxcopyがVistaでは非推奨になっていることに気づいた。今私は、これについてビルドエンジニアと話しています。

2

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

+0

複数のコアで問題を詳しく説明できますか? VSが開いていなくても、コマンドラインでxcopyが失敗します。 Unlockerのようなツールは何もファイルをロックしていないと主張しています。眠る場所はありません。 – OwenP

+0

あなたの説明から、ビルドの自動化の途中にいるように思えます。ファイルロックのために、Windowsはこれで悪く悪名高いことが知られています。私はあなたが始めたいくつかの前のプロセスが、コピーの開始時に完全に終了していないと仮定しています。 – krosenvold

0

Windowsエクスプローラでファイルを削除できる場合は、昇格されたコマンドプロンプトを使用してみてください。 Windowsエクスプローラがcmdを使用して管理者権限を必要とする削除操作についてここで許可を求めない理由を確かめてください。

6

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

これは私の解決方法です。あなたが管理者としてXCOPYを実行する必要が

Source

+2

ありがとう、これは私を助けた。 – ziddarth

+0

それはまた、宛先ファイルが「読み取り専用」として表示されていないときでさえ、私の問題を解決しました.... –

+0

それは私にとっても効果的でした。 – te7

1

、この周りに方法はありません。

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

しかし、ROBOCOPYを使用すると、/COPYALLスイッチを使用することが非常に魅力的で、監査情報をコピーし、「監査ユーザー権利の管理」が必要になるため、管理者としての迅速なソリューションとして実行する必要があります。管理者としてコピーを実行しない場合は、/COPYALL(または/Copy:DATSOU)スイッチを使用しないでください。代わりに、/Copy:DATSOを使用してください。Uは、編集用の略語です。

また、NTFSからFATファイルシステムにコピーする場合、「NTFSセキュリティを宛先ディレクトリ/ファイルにコピーする」ことはできません。

関連する問題