首页 > 解决方案 > 在 TFS 构建定义中未触发 Visual Studio 项目的构建后事件

问题描述

我是 Team Foundation Build 的新手。我在 Visual Studio 中设置了所有 C# 项目的构建后事件,以将二进制文件复制到物理目录。每个项目中的命令行是:

xcopy "$(TargetDir)*.*" "$(SolutionDir)..\TempOutput\" /Y

当我在 Visual Studio 中构建解决方案时,会触发构建后事件并复制文件。但是在使用 TFS 构建定义构建时,不会触发事件。我需要在构建定义中单独设置什么来触发所有项目的构建后事件吗?

我的 TFSBuild.proj 中有这个,但仍然无法正常工作:

<PropertyGroup>
   <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>

标签: visual-studiotfsmsbuild

解决方案


缩小与 TFS 构建定义相关的问题。您应该手动远程到构建代理并运行 msbuild 命令来触发构建,而不是通过 TFS 服务器。

由于您使用的是 XAML 构建,请查看以下内容:

Team Build 使用与 Visual Studio 构建不同的目录布局。对于任何构建的项目,所有二进制文件都放在一个文件夹中,因此会自动解决引用问题,并且很容易将 DLL 复制到最终的 Drop 文件夹中。

您应该使用 $(OutDir) MSBuild 变量来正确引用 VS 和 TFS 构建中的二进制目录。请参阅 是否有一个 MSBuild 和 TFSBuild 变量将指向二进制文件的位置? 了解一些细节。


推荐阅读