【发布时间】:2023-03-10 02:58:01
【问题描述】:
我有 TFS2010 构建工作流来编译我们的解决方案,其中包含大约 100 个项目。编译成功,测试按预期运行等。我遇到的问题与 bin 输出文件夹的重定向有关。
据我了解,MSBuild 的 TFS2010 构建活动会将您的 bin 文件夹输出重定向到与 Sources 和 TestResults 文件夹处于同一级别的二进制文件夹,如下所示。
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Binaries
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Sources
C:\Builds\1\MyPlatform\MyPlatform Main - CI\TestResults
bin 文件夹的这种重定向对我 80% 的项目都按预期工作。其余项目 bin 文件夹在其标准位置显示为未重定向,就好像我在本地计算机上使用 VS 进行编译一样。
为了说明,按预期工作时...
源码路径:-
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Sources\Source\MyPlatform.Modules.Interaction.Specs
Bin 输出成功重定向到二进制文件夹:-
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Binaries\Mixed Platforms\Debug\MyPlatform.Modules.Interaction.Specs
现在是一个非重定向示例...
源码路径:-
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Sources\Source\MyPlatform.AddIns.Framework.Services
Bin 输出未重定向并保留在源文件夹中:-
C:\Builds\1\MyPlatform\MyPlatform Main - CI\Sources\Source\MyPlatform.AddIns.Framework.Services\bin\Debug
澄清一下,这不是放置位置的问题,而是将 bin 输出重定向到中间 Binaries 文件夹。到我的最终放置位置的副本按预期工作,除了最初没有将 bin 输出重定向到二进制文件夹的项目之外。
我环顾四周,我看到的所有信息都指向将输出自定义到二进制文件夹或与放置位置相关。阅读本文后,我看不到任何应该导致某些项目忽略默认重定向的内容。
我的大部分项目都是标准的 .NET 4 类库,尽管有几个 c++ 项目和一个 WIX 安装程序。我最初虽然它与这种差异有关,但这个问题发生在几个 .NET 4 类库上,这些类库与所有其他成功重定向的项目具有相同的设置。
关于上面的示例路径还有一点。我已经用“我的”代替了实际的项目前缀,但其他路径都是使用的。
有谁知道为什么某些项目的 bin 输出可能不会被重定向?
如果您能提供任何帮助,我们将不胜感激。
谢谢 H
【问题讨论】:
-
继续调查并从 MSDN 上的 Dharmesh Shah 向正确方向推进表明这都与“TeamBuildOutDir”设置有关。更多细节可以在这里找到blogs.msdn.com/b/jimlamb/archive/2010/04/13/…
标签: build msbuild build-process build-automation