TFS 2012团队构建获取解决方案配置

时间:2013-12-31 20:11:07

标签: c# tfs msbuild tfs2012 team-build

我们已经构建了一个自定义的TFS构建模板,该模板可以在自己的文件夹中构建解决方案文件中的所有项目。我们有两个解决方案级配置SOLConf1SOLConf2以及两个项目级配置PROJConf1PROJConf2。在Build Definition中,我选择.sln解决方案文件和SOLConf1配置。

现在在Configuration Manager窗口中,当我选择{{1>}作为有效解决方案配置时,我看到选择了5个项目,它们都有SOLConf1组态。到目前为止一切都很好。

我们修改了项目文件,以便自定义TFS Team Build输出目录:

PROJConf1

我希望 <PropertyGroup> <_PackageTempDir> $(TeamBuildOutDir)\$(SolutionName)\$(Configuration)\$(MSBuildProjectName) </_PackageTempDir> </PropertyGroup> 返回解决方案级别的配置(即$(Configuration)),而是返回项目级配置(即SOLConf1)。我无法从MSBuild Reserved and Well-Known Properties列表中找到可提供解决方案级别配置的属性。在模板内部,传入MSBuild进行配置的变量称为 platformConfiguration.Configuration ,这是我在构建定义中选择的配置(即PROJConf1)。

现在我的问题是:有没有办法使用MSBuild宏获取此变量,这样我就会有类似

的内容
SOLConf1

如果没有,如何使用MSBuild宏访问MSBuild中的解决方案级配置?

1 个答案:

答案 0 :(得分:0)

  

我们已经构建了一个自定义的TFS构建模板来构建所有的   将解决方案文件中的项目放在自己的文件夹中。

这是许多可能解决方案的常见问题。当我遇到这个问题时,我使用了this blog上的建议,但是使用.NET 4.5,这是通过MsBuild属性来处理的。

/p:GenerateProjectSpecificOutput=true 

我真的很想避免编辑TFS构建模板。