1

我想在项目编译成功后将其中的一些文件复制到特定的文件夹中。我写了一个构建后事件,如下所述:

xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y

注意:我的项目的输出路径已设置为 bin 文件夹,用于调试和发布两种模式。

上述构建事件运行良好,bin 文件夹下的所有文件都已复制到目标文件夹。但是连同所需的文件,“vshost.exe”文件也被复制了,我不想要这个文件。因此,我使用了 xcopy 构建事件的 exclude 参数,如下所述:

xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y /exclude:$(TargetDir)..\..\Support Files\DBUpgradeUtility\*.vshost.exe

使用上述构建事件,编译失败,错误为:

命令 "xcopy "C:\TFSWorkspace\FASTER.Web - v6.3.Sprint.06\Source\Installer\Application\DBUpgradeUtility\bin" "C:\TFSWorkspace\FASTER.Web - v6.3.Sprint.06\ Source\Installer\Application\DBUpgradeUtility\bin....\Support Files\DBUpgradeUtility\" /Y /exclude:"C:\TFSWorkspace\FASTER.Web - v6.3.Sprint.06\Source\Installer\Application\DBUpgradeUtility \bin....\Support Files\DBUpgradeUtility*。vshost.exe”以代码 4 退出。

我还搜索了排除参数,然后编写了上面提到的构建事件。我找不到我在这里缺少的东西或我做错了什么。

请帮助我。

谢谢你。

4

1 回答 1

1

该命令的/exclude选项xcopy工作方式不同 - 它允许您指定包含排除过滤器的文件:

指定文件列表。必须至少指定一个文件。每个文件将包含搜索字符串,每个字符串在文件中的单独行上。

当任何字符串与要复制的文件的绝对路径的任何部分匹配时,该文件将被排除在复制之外。例如,指定字符串,\obj\.obj将排除目录下的obj所有文件或所有带有.obj 扩展名的文件。

因此,您可以在项目中创建一个新文件(例如$(ProjectDir)excludes.txt)并添加以下行:

vshost.exe

然后将 xcopy 命令中的选项更改为:

/exclude:"$(ProjectDir)excludes.txt"

vshost.exe这不包括包含在其绝对路径中的所有文件。如果您必须排除其他文件,只需在文件中添加一个新行。

于 2015-08-17T07:35:09.003 回答