TFS 2010构建自动化和后期构建事件

mar*_*c_s 18 tfsbuild post-build-event visual-studio tfs2010

在我继承的项目中,原始开发人员在他的Visual Studio项目中使用了许多后期构建事件来复制DLL和内部VS时的内容.

现在我正试图将这些东西转移到TFS 2010 Build系统,这引起了一些悲痛.

我希望能够创建一个新的"连续"项目配置,并在该配置中从Visual Studio中排除那些后期构建事件 - 但似乎这些调用不能根据您的项目配置进行配置....

有任何想法吗?有什么我可以检查知道我在TFS Build下运行然后只是跳过那些CMD文件?任何想法都会受到欢迎!

Giu*_*ian 26

我的方法是使用它来保护构建前或构建后的代码

IF "$(BuildingInsideVisualStudio)"=="true" ( ......你的代码在这里...... )

该变量由Visual Studio自动定义,您无需更改构建定义.


har*_*357 14

我使用类似的方法来做到这一点.我在每个项目的构建后步骤中添加以下内容:

if '$(TeamBuild)'=='True' exit 0
Run Code Online (Sandbox Code Playgroud)

然后在配置构建定义时,我只需添加:

/p:TeamBuild=True
Run Code Online (Sandbox Code Playgroud)

...到M​​SBuild参数.

这使我可以灵活地保留项目和构建定义中的所有配置.


dcp*_*dcp 6

如果在团队构建服务器上设置环境变量,然后可以在检查构建步骤中检查该环境变量,那么该怎么办?如果设置了环境变量,您将知道跳过执行后构建步骤的命令文件,因为您知道您在TFS构建下运行.

您可以将所有后期构建步骤合并到一个脚本中,然后只检查该脚本开头的环境变量.

或者您可以以相反的方式执行此操作并将检查构建到TFS构建脚本中.您可以在这里参考如何检查TFS构建中的环境变量.

所以在你的TFS构建脚本中,你会有类似的东西:

<RunScripts Condition=" '$(RunScriptsServerVar)' != '' ">
            the environment var is NOT set, so run your scripts since we aren't in
            a TFS build
</RunScripts>
Run Code Online (Sandbox Code Playgroud)

  • 听起来很明显:-)我会试一试 - 谢谢! (2认同)