2012-09-12 42 views
17

プロジェクトをビルドした後、メインディレクトリからxmlファイルをbin\Debugにコピーしたいが、私の解決策が機能しない。私は.csprojファイルを編集して、コメントを追加:私は間違って何をやっているビルド後のMsBuildコピーファイル

<Target Name="AfterBuild"> 
    <Copy SourceFiles="Controllers.xml" DestinationFolder="\bin\Debug" ContinueOnError="true" /> 
</Target> 

?ビルドは成功です。

+1

このMsBuildターゲットのビルド出力とは何ですか?あなたが '$ MSBuildProjectDirectory \ Controllers.xml'を入れなければならないと思っています –

+0

残念ながら、それは助けにはなりませんでした。他のアイデア? – KlimczakM

答えて

36

宛先フォルダが間違っている可能性があります。先行するバックスラッシュで指定した場合、実際には<current-drive-letter>\bin\Debug(それは実質的に絶対パスになります)の省略形(C:\bin\Debugなど)です。

どちらかbin\Debugを使用するか、いっそのビルド構成に応じbin\Debugまたはbin\Releaseのいずれかに設定されているOutputPath変数を使用します。

例:

<Target Name="AfterBuild"> 
    <Copy SourceFiles="Controllers.xml" DestinationFolder="$(OutputPath)" ContinueOnError="true" /> 
</Target> 
4

は、プロジェクト内のXMLファイルですか? そのプロパティの1つはCopyToOutputDirectoryです。それをCopyAlwaysに設定し、プロジェクトがビルドするとファイルはbin \ debugにコピーされます。

1

フルパスを指定する必要があります。私はMsBuildのコピータスクがVisual Studioの "Default path"から実行されていると思われ、そのファイルは見つかりません。また、ビルド先のディレクトリにファイルが存在する可能性が最も高くなります。

<Target Name="AfterBuild"> 
    <Copy SourceFiles="$(ProjectDir)Controllers.xml" DestinationFolder="$(TargetDir)" ContinueOnError="true" /> 
</Target> 
関連する問題