Visual Studio 2008 を使用して ASP.NET Web アプリケーションを作成しています。プロジェクトは、Visual Studio が提供する既定の空のプロジェクトからほとんど変更されていませんが、次の点が異なります。
- プロパティ -> ビルド -> 出力で、「XML ドキュメント ファイル」にチェックを入れ、「bin\MyProject.XML」に設定します。
- [プロパティ] -> [ビルド イベント] で、「ビルド後のイベント コマンド ライン:」が
copy /y "$(TargetDir)$(TargetName).XML" "C:\TEMP\"
初めてプロジェクトをビルドまたは再ビルドすると、ビルド プロセスが正常に完了します。ただし、その後いつでもビルドしようとすると、ビルド プロセスは次のメッセージで失敗します。
------ Build started: Project: MyProject, Configuration: Debug Any CPU ------
MyProject -> C:\Projects\MyProject\MyProject\bin\MyProject.dll
copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"
The system cannot find the file specified.
c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3397,13): error MSB3073: The command "copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"" exited with code 1.
Done building project "MyProject.csproj" -- FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
コマンド ウィンドウでビルド後のコマンドを実行できるため、構文が正しいことは確かです。
C:\>copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"
1 file(s) copied.
コマンドは手動で実行すると機能しますが、ビルド プロセスの一部である場合に失敗するのはなぜですか?