TFS 2013构建 - 通过后置构建事件复制的文件未找到

16 浏览
0 Comments

TFS 2013构建 - 通过后置构建事件复制的文件未找到

这是一个WinForm应用程序。

所有的dll、exe和一些其他扩展文件都通过后期构建事件(VS后期构建)复制到StartupProject\bin中。

在TFS服务器上,项目有两个子文件夹:bin和src。(bin包含所需的dll,但其他扩展文件缺失 -.png、.dat、.xslx)。

在服务器上,后期构建复制的文件出现在StartupProject\bin下,但它们没有被复制到TFSFolder\bin。

我如何强制复制所有的StartupProj/bin到TFSFolder\bin?

0
0 Comments

问题原因:

TFS 2013构建与Visual Studio构建使用不同的目录布局。所有构建的项目的二进制文件都会放在一个单独的文件夹中,因此引用会自动解析,很容易将DLL文件复制到最终的Drop文件夹中。但是,如果在构建过程中使用了Post Build Event来复制文件,可能会出现找不到复制的文件的问题。

解决方法:

为了在VS和TFS构建中正确引用二进制文件目录,应使用$(OutDir) MSBuild变量。有关详细信息,请参见Is there a single MSBuild and TFSBuild variable that will point to where the binaries are?

如果需要为桌面(VS)和服务器(TFS)构建使用不同的脚本,可以使用$(BuildingInsideVisualStudio)变量,如TFS 2010 Build Automation and post-build event中所述。

虽然$(OutDir)解决方案似乎有效,但是如果需要将文件复制到$(OutDir)和StartupProj两个目录中,是否可以在一步中完成复制操作(而不是先复制到OutDir,然后再复制到StartupProj)?

0