TeamBuild - 是否可以选择在构建时编译哪些项目?

发布于 2024-07-17 14:23:47 字数 314 浏览 5 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叹沉浮 2024-07-24 14:23:47

查看 TFSBuild.proj 文件中的 SolutionToBuild 部分。

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>

Look at the SolutionToBuild section in the TFSBuild.proj file.

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>
耳根太软 2024-07-24 14:23:47

您可以通过两种主要方式控制构建:

  • 在团队资源管理器中创建单独的构建类型。 这将有自己完全独立的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文