10

我有 VS 2012 项目,其结构如下:

Project
   Folder1
      file.xml
      schema.xsd
      code.cs
   Folder2
      code1.cs
      code2.cs

我设置了和的Copy to output directory属性,file.xmlschema.xsd希望Copy always将它们输出到程序集输出的同一文件夹(bin\Debug),但它们总是复制到文件夹bin\Debug\Folder1。有没有办法在不将文件移动到项目根目录的情况下实现我的目标?

4

1 回答 1

16

我建议您使用 Post-built 事件脚本来执行此操作。它并不像听起来那么忙碌,并为您提供了很大的灵活性。

  • 右键单击您的项目并选择Properties
  • 转到Build Events选项卡,然后单击Edit Post-build...

(见下面的截图)

您现在可以指定每次成功构建项目后要执行的 shell 命令。以下实现了您问题中的示例:

copy "$(ProjectDir)Folder1\file.xml" "$(TargetDir)"
copy "$(ProjectDir)Folder1\schema.xsd" "$(TargetDir)"

$(ProjectDir)并且$(TargetDir)是插入与您的项目相关的相应值的宏。您可以从编辑窗口的宏菜单中选择和插入宏。

上面包含引号,因为您的ProjectDirandTargetDir可能解析为包含空格的完整路径,copy如果空格不存在,这将破坏命令。

打开项目属性

编辑后期构建

于 2012-10-29T14:48:26.513 回答