TeamBuild - 是否可以选择在构建时编译哪些项目?
我正在使用 TeamFoundation 自动化构建过程,并且需要根据构建中的 .proj 文件选择要编译的项目。 这是完整的场景:
我有一个 .proj 文件,它使用 .sln 文件来编译包含 2 个网站的解决方案。 .sln 文件配置为在发布配置中编译两个网站。
我的目标是每种构建类型仅编译 1 个网站,即我希望 BuildType1 编译网站 1,BuildType2 编译网站 2。
可以通过一种方式“修改”.sln,以便我可以取消标记其中之一要编译的网站? 由于这是一个自动化过程,因此每次我只想编译一个网站时,我无法手动更改 .sln。
I am automating my build process using TeamFoundation and I need to choose what projects to compile according to the .proj file from the build. Here is the full scenario:
I have a .proj file which uses a .sln file in order to compile a solution which contains 2 websites. The .sln file is configured to compile both websites in Release configuration.
My goal is to compile only 1 website per build type, namely I want the BuildType1 to compile website 1 and BuildType2 to compile the website 2.
Is is possible to "modify" the .sln in such a way that I can unmark one of the websites to compile? Since it is an automated process, I can't change the .sln manually every time I want to compile only one website.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看 TFSBuild.proj 文件中的 SolutionToBuild 部分。
Look at the SolutionToBuild section in the TFSBuild.proj file.
您可以通过两种主要方式控制构建:
在团队资源管理器中创建单独的构建类型。 这将有自己完全独立的 TFSBuild.proj 文件,因此它可以以完全不同的方式构建相同的代码库。 设置 SolutionToBuild 以构建您想要的内容(如接受的答案中所述)。
使用一种构建类型,并将其 TFSBuild.proj 设置为使用属性来控制构建的内容(这需要更深入地了解 MSBuild 脚本)。 然后,在“队列新建构建”对话框中,您可以使用 /p: 命令行标志根据需要设置属性。 例如“/p:IncrementalGet=false;IncrementalBuild=false;ForceGet=true”将强制通常的增量构建进行完全重建。 这对于偶尔的情况很有用,但对于日常构建来说不是一个好主意,因为您每次都必须手动设置参数。
There are two main ways you can control the build:
create a separate Build Type in your Team Explorer. This will have its own completely independent TFSBuild.proj file, so it can build the same code-base in a completely different way. Set the SolutionToBuild up to build just what you want (as described in the accepted answer).
Use one Build Type, and set its TFSBuild.proj up to use a property to control what is built (this requires more in depth understanding od MSBuild scripts). In the Queue New Build dialog you can then use the /p: command line flag to set the property as you need it. e.g. "/p:IncrementalGet=false;IncrementalBuild=false;ForceGet=true" will force a normally incremental build to do a full rebuild. This is useful for occasoinal situations, but not a good idea for day to day builds as you have to set the parameters by hand every time.