VS PostBuild事件 - 复制文件(如果存在)

时间:2012-07-10 21:48:24

标签: visual-studio post-build-event

是否有一种简单的方法可以在Visual Studio项目的后期构建事件中复制文件,但只有在文件存在的情况下? (即如果文件不存在,请不要使构建失败)

我尝试过使用xcopy的一些选项。但我觉得很蠢 - 我似乎无法理解xcopy可能需要的开关。

3 个答案:

答案 0 :(得分:32)

使用“IF”命令:

IF EXIST file.txt xcopy file.txt [destination_folder]\ /Y

答案 1 :(得分:8)

也没有IF EXIST但使用XCOPY的/ U选项

xcopy source_file_name dest_folder /u /y

答案 2 :(得分:1)

如果您更喜欢在“属性”面板中使用“复制到输出目录”(当您右键单击项目文件并选择“属性”时由 Visual Studio 提供),您可以使用一些文本来实现- 编辑。这适用于所有使用 MSBuild 的 Visual Studio 版本(即 Visual Studio 2010 及更高版本)。

首先,为“Copy to Output Directory”选择合适的值,例如“Copy always”或“Copy if newer”。保存对项目的更改(例如,“文件”菜单中的“全部保存”)。

然后,在文本编辑器中编辑项目文件,并在新添加的 <CopyToOutputDirectory> 元素的开始标记内,添加类似 Condition="Exists('$(MSBuildProjectDirectory)\FILENAME')", 的属性,其中 FILENAME 是被复制文件的路径(即在父元素中引用)。

GUI 将来不会正确编辑此设置(即,如果文件不存在,它将显示“请勿复制”作为值),但至少它会起作用。