24

我想bin\Debug在构建项目后将一个 xml 文件从主目录复制到,但我的解决方案不起作用。我编辑了.csproj文件并添加了:

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

我究竟做错了什么?构建成功。

4

3 回答 3

45

您的目标文件夹(很可能)是错误的。如果您使用前导反斜杠指定它,它实际上只是<current-drive-letter>\bin\Debug(使其有效地成为绝对路径,如C:\bin\Debug)的简写形式。

要么使用bin\Debug,要么更好地使用OutputPath变量,该变量设置为bin\Debug或者bin\Release取决于您的构建配置。

例子:

<Target Name="AfterBuild">
     <Copy SourceFiles="Controllers.xml" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
</Target>
于 2012-09-12T10:23:39.207 回答
5

xml文件在你的项目中吗?然后它的属性之一是 CopyToOutputDirectory。将其设置为 CopyAlways,当项目构建时,文件将被复制到 bin\debug。

于 2012-09-12T11:33:46.687 回答
3

您必须指定完整路径。我怀疑 MsBuild 复制任务是从 Visual Studio 的“默认路径”运行的,并且找不到该文件。此外,您很可能希望文件最终位于构建目标目录中。

<Target Name="AfterBuild">
    <Copy SourceFiles="$(ProjectDir)Controllers.xml" DestinationFolder="$(TargetDir)" ContinueOnError="true" />
</Target>
于 2012-09-12T11:46:00.057 回答