步骤:
打开构建定义" test1"它指向构建控制器" controller1" on" builder1"机器,然后点击"处理"标签
打开构建定义" test2"它指向构建控制器" controller2" on" builder2"机器,然后点击"处理"标签
错误是:Team Foundation错误拒绝访问路径{path} :
值得注意的是:我也在输出窗口中出现错误,例如:
Summary: There were 0 failures, 6 errors and 0 warnings loading custom activities and services.
Error: Could not load file or assembly 'Microsoft.TeamFoundation.VersionControl.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Error: API restriction: The assembly 'file:///C:\Users\{!REDACTED!}\AppData\Local\Temp\VSTFSBuild\df2044d9-c8bb-4666-9c93-513e149cd3e0\Microsoft.TeamFoundation.Build.Client.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.
我还没有证明这两个错误是相关的(我在加载过程参数时也会得到类似的API限制错误),但它们可能是。
我有这种双控制器设置的原因是因为controller1使用我的自定义活动的路径,即$ / Process / Dev和controller2使用路径$ / Process / Production。它帮助我孤立地测试我的变化。
所以问题是:微软是否支持使用指向同一个TFS实例的多个构建控制器(在不同的机器上)? / p>
或者,我对如何测试我对自定义活动的更改的不同想法持开放态度,而不强迫我的所有构建都指向更改。
答案 0 :(得分:1)
我建议您的BuildTasks.dll在两个位置都不同。我会将dll更新到最新版本的任何位置错误或将两个控制器指向同一个dll,如果你想维护不同的源位置,你也可以确保dll有不同的版本号。支持多个控制器并且正常工作。
作为短期修复,清除不同构建定义之间的缓存,以便2个不同的dll不会相互冲突
我有这种双控制器设置的原因是因为controller1 使用我的自定义活动的路径,即$ / Process / Dev和controller2 使用路径$ / Process / Production。它可以帮助我测试我的变化 隔离。
目前尚不清楚打开Build Definitions的机器,但我认为它是你的开发机器,我在开发时总是将buildtasks.dll放在Visual Studio的公共文件夹中。