TFS 2013构建 - 通过后置构建事件复制的文件未找到
问题原因:
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)?