2012-09-12 21 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,或者更好的使用OutputPath變量,它被設置爲bin\Debugbin\Release根據您的生成配置。

例子:

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

是在項目中的XML文件? 然後其中一個屬性是CopyToOutputDirectory。將其設置爲CopyAlways,並在項目生成時將文件複製到bin \ debug。

1

您必須指定完整路徑。我懷疑MsBuild複製任務正在從Visual Studio的「默認路徑」運行,並且找不到該文件。另外,您很可能希望文件最終位於構建目標目錄中。

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