3

在我目前正在使用的项目中,我们大量使用构建后事件和相对路径引用。即,我们将所有解决方案间引用实现为具有相对路径的 dll 引用,其中引用解决方案使用构建后事件将二进制文件拖放到其中。

这在视觉工作室 enviornmnet 中运行良好,现在我们正在寻找一种自动构建源代码并创建每日二进制文件的方法。TFS 构建似乎不能很好地与相对路径引用配合使用。

有什么快速的解决方案吗?我不敢相信这会如此复杂,因为我们只需要安排构建以获取最新的源代码,按照 Visual Studio 定义构建它,然后将二进制文件放到共享文件夹中。

非常感谢

4

2 回答 2

3

我见过不少项目在与 TFS 构建系统一起使用时使用构建后事件中断。此问题通常源于 Visual Studio 将 $(OutDir) 变量传递给 MSBuild 引擎的方式与 TFS Build 引擎的方式不同。本质上,当您在 Visual Studio 中编译时,$(OutDir) 路径(通常)设置为 bin\debu 或 bin\release,而在 TFS BUild System 中,它被设置为构建发生的构建机器上的 Binaries 目录。

如果这是破坏您的构建的原因,那么有几种方法可以解决此问题

方法一

  1. 确保您的构建后事件不依赖于硬编码路径,如 ..\bin\release 等,而是在您使用 bin\debug 或 bin\release 的任何地方使用 $(OutDir)
  2. 要获取正在构建的解决方案文件的路径,请使用 $(SolutionDir) 或 $(solutionPath)
  3. 使用此处的列表对构建脚本中的路径变量进行必要的更改

方法二

  1. 在此处使用此链接自定义您的构建模板,以便它使用 Visual Studio 编译模式。您不必更改构建后的事件即可使其正常工作。
于 2012-10-24T13:29:49.753 回答
0

尼基尔,谢谢。我最终选择使用巡航控制,因为它比 TFS 构建更容易和灵活。我的意思是这只是一个构建,对于像我们这样的小团队来说,我们并不真正关心那些工作流程和复杂的需求..

于 2012-10-25T15:13:55.380 回答