"拒绝访问路径"加载构建定义过程参数时,我在temp中的自定义活动程序集

时间:2014-07-09 22:51:30

标签: tfs tfs2010 tfsbuild

步骤:

  1. 打开构建定义" test1"它指向构建控制器" controller1" on" builder1"机器,然后点击"处理"标签

  2. 打开构建定义" test2"它指向构建控制器" controller2" on" builder2"机器,然后点击"处理"标签

  3. 错误是:Team Foundation错误拒绝访问路径{path}

    enter image description here

    值得注意的是:我也在输出窗口中出现错误,例如:

    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>

    或者,我对如何测试我对自定义活动的更改的不同想法持开放态度,而不强迫我的所有构建都指向更改。

1 个答案:

答案 0 :(得分:1)

我建议您的BuildTasks.dll在两个位置都不同。我会将dll更新到最新版本的任何位置错误或将两个控制器指向同一个dll,如果你想维护不同的源位置,你也可以确保dll有不同的版本号。支持多个控制器并且正常工作。

作为短期修复,清除不同构建定义之间的缓存,以便2个不同的dll不会相互冲突

  

我有这种双控制器设置的原因是因为controller1   使用我的自定义活动的路径,即$ / Process / Dev和controller2   使用路径$ / Process / Production。它可以帮助我测试我的变化   隔离。

目前尚不清楚打开Build Definitions的机器,但我认为它是你的开发机器,我在开发时总是将buildtasks.dll放在Visual Studio的公共文件夹中。