我应该在哪里存储团队建设的共同目标?

发布于 2024-07-14 22:12:34 字数 211 浏览 14 评论 0原文

我正在尝试设置一个 common.targets 文件,其中包含一些我想在团队构建中使用的常见 msbuild 目标,因此导入到我的 TFSBuild.proj 文件中。 我想知道实现这一目标的最佳方法是什么? 我是否需要将 common.targets 存储在每个 TFSBuild.proj 文件旁边,从而为每个团队构建保留目标文件的副本,或者还有其他方法吗? 我不想将目标文件放在每台构建机器上。

I am trying to set up a common.targets file with some common msbuild targets I want to use in my team builds and therefore import into my TFSBuild.proj files. I am wondering what is the best way to achieve this? Do I need to store common.targets right next to each TFSBuild.proj file and therefore having duplicates of the targets file for each team build or is there another way? I would rather not put the targets file on each of the build machines.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(4

萌︼了一个春 2024-07-21 22:12:34

将其放在源代码管理中您喜欢的常用位置。 在使用目标之前,请像这样从 TFSBuild.proj 文件中获取:

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf"</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>"$/YourProj/YourCustomProjPath"</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

此工作的关键是为构建代理用户设置一个指向您的自定义内容的工作区。 该目录不应与您的正常构建位于同一空间。

瓦卡诺

Put it in a common location that you like in source control. Prior to using the targets, do a get from your TFSBuild.proj file like this:

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf"</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>"$/YourProj/YourCustomProjPath"</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

The key to this working is to setup a Workspace for your build agent user that points to your custom stuff. This directory should NOT be in the same space as your normal builds.

Vaccano

木落 2024-07-21 22:12:34

Team Build 在调用 TFSBuild.proj 之前有一个引导程序阶段,其中仅从源代码管理下载 TFSBuild.proj 和同一目录中的其他文件。
因此,如果您希望目标文件处于源代码管理之下,则需要将其放在与 TFSBuild.proj

此答案中的更多详细信息

我从未尝试过,但您也许可以将目标文件放在网络共享上,并使用 unc 共享导入它。 类似于

<Import Project="\\anothermachine\share\something.targets"/>

但这需要构建帐户和运行桌面构建的所有人员都可以访问该网络共享。

Team Build has a bootstrapper phase before the TFSBuild.proj is invoked in which only the TFSBuild.proj and other files in the same directory is downloaded from source control.
So if you want your targets file to be under source control, you need to put it at the same location as the TFSBuild.proj

More details in this answer

I have never tried it, but you might be able to put the targets file on a network share, and import it using a unc share. Something like

<Import Project="\\anothermachine\share\something.targets"/>

But that would require that the build account and all people running desktop builds have access to that network share.

小女人ら 2024-07-21 22:12:34

通用 .targets 文件的目标是减少脚本的重复。 如果您在源代码管理下有该文件的多个副本,当您需要更改它们(可能更新 .exe 路径)时会发生什么? 就我个人而言,我更喜欢为任何/所有其他构建脚本可以引用的公共文件提供单独的位置。 唯一的缺点是您可能会硬编码该文件的路径。

The goal of a common .targets file is to reduce duplication of your scripts. If you have multiple copies of this file under source control, what happens when you need to change them (to update a .exe path maybe)? Personally, I prefer a separate location for common files that any/all other build scripts can reference. The only downside to this is you will likely be hard-coding the path to this file.

久隐师 2024-07-21 22:12:34

您可以将它们与 MS 目标一起存储在 $Volume\Program Files\MSBuild 中。 这样做的优点是您可以使用内置的已知元数据“$(MSBuildExtensionsPath)\Path\To\Your\Targets”创建相对路径

You could store them alongside the MS targets in $Volume\Program Files\MSBuild. The advantage of doing this is that you can create a relative path using the built in know metadata "$(MSBuildExtensionsPath)\Path\To\Your\Targets"

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