我们已经构建了一个自定义的TFS构建模板,该模板可以在自己的文件夹中构建解决方案文件中的所有项目。我们有两个解决方案级配置SOLConf1
和SOLConf2
以及两个项目级配置PROJConf1
和PROJConf2
。在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中的解决方案级配置?
答案 0 :(得分:0)
我们已经构建了一个自定义的TFS构建模板来构建所有的 将解决方案文件中的项目放在自己的文件夹中。
这是许多可能解决方案的常见问题。当我遇到这个问题时,我使用了this blog上的建议,但是使用.NET 4.5,这是通过MsBuild属性来处理的。
/p:GenerateProjectSpecificOutput=true
我真的很想避免编辑TFS构建模板。