如何为TeamCity项目构建Debug和Release版本

8

我脑海中首先想到的是使用两个Visual Studio (.sln)构建步骤 - 分别针对每个配置。(TC v5+支持多个构建步骤)

还有更好的方法吗?


可能是在TeamCity中启动运行所有构建配置的重复问题。 - Tomas Kubes
2个回答

7

我们有两个不同的MSBuild目标,使用不同的属性来构建解决方案:

<Target Name="Build-Debug">
    <MSBuild Projects="OurSolution.sln" Targets="Rebuild" Properties="Configuration=Debug" />
</Target>

<Target Name="Build-Release">
    <MSBuild Projects="OurSolution.sln" Targets="Rebuild" Properties="Configuration=Release" />
</Target>

从TeamCity中,我们有一个“配置”(在TeamCity术语中),它调用Build-Debug目标,另一个则调用Build-Release

7
如果有人知道这个XML文件应该放在哪里,加上它会极大地改善这个答案。是指项目文件吗? - Luke Puplett
此外,重点是同时构建两者...拥有单独的配置并不比默认情况更好。 - C.B.
1
@luke 我认为意图是将这个XML放入一个独立的msbuild文件中。但它所做的只是使用必要的参数再次调用msbuild来处理你的解决方案。老实说,我不认为这有多大价值...它基本上只是创建了两个额外的目标,但你仍然需要两次调用msbuild。 - Jack Ukleja

2
我们通常会使用msbuild来包装sln构建,以便运行测试、构建sql脚本等。此时,您可以调用sln并设置适当的属性值;Configuration=DebugConfiguration=Release 除非您只是想使用pdb文件进行发布(这总是一个好主意),否则请在Visual Studio的构建部分更改属性。

谢谢您的回复。您能详细解释一下pdb问题吗? - Jack Ukleja
在生产环境中出现错误时,拥有pdb文件可添加详细信息非常有用。您可以告诉VS即使在优化构建(又名Release)中也要构建pdb文件。在项目属性、生成、高级、调试信息中,设置为pdb-only(刚刚查看似乎是默认值,但这可能只是我)。这可能会给您更多信息http://vanryswyckjan.blogspot.com/2005/09/pdb-only-debug-information-option.html。 - Adam Straughan

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