$(TeamBuildConstants)在TFS构建中为空

4
我有一个构建后事件,如下所示:
如果在Visual Studio中进行构建,则$(TeamBuildConstants)为空(应该是这样的)。
但是当我在我的TFS 2010服务器上进行构建时,$(TeamBuildConstants)仍然为空。我需要做什么才能知道何时正在运行TFS Build?
1个回答

5

团队构建

http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/618392e6-a108-4e70-898b-52ee6afc0600/

TeamBuild 2008会为由构建代理运行的构建设置IsDesktopBuild=false。如果未在命令行或项目属性中设置,则默认值为true。TFS 2010的行为相同,因此请尝试以下内容:

<PostBuildEvent Condition=" '$(IsDesktopBuild)' == 'true' ">echo This is post-build</PostBuildEvent>

虽然我听说有些人说它不起作用,但还有一个替代属性 - $(BuildingInsideVisualStudio) - 可以使用。

如果两者都不起作用,您可能需要编辑生成定义并自定义msbuild调用。

NuGet 1.6

NuGet 1.6也有一个msbuild文件可以创建NuGet文件,值得一看。

片段

<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<BuildCommand>"$(NuGetExePath)" pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接