Tfs &引用;“拒绝访问路径”;加载生成定义过程参数时在temp中创建自定义活动程序集

Tfs &引用;“拒绝访问路径”;加载生成定义过程参数时在temp中创建自定义活动程序集,tfs,tfsbuild,Tfs,Tfsbuild,步骤: 打开构建定义“test1”,它指向“builder1”计算机上的构建控制器“controller1”,然后单击“进程”选项卡 打开构建定义“test2”,它指向“builder2”机器上的构建控制器“controller2”,然后单击“进程”选项卡 错误是:Team Foundation错误访问路径{路径}被拒绝< /强>: 值得注意的是:我在输出窗口中也会出现错误,例如: Summary: There were 0 failures, 6 errors and 0 warnings

步骤:

  • 打开构建定义“test1”,它指向“builder1”计算机上的构建控制器“controller1”,然后单击“进程”选项卡

  • 打开构建定义“test2”,它指向“builder2”机器上的构建控制器“controller2”,然后单击“进程”选项卡

  • <强>错误是:Team Foundation错误访问路径{路径}被拒绝< /强>:

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

    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。它帮助我单独测试我的变化

    所以问题是:对于Microsoft支持使用多个构建控制器(在不同的机器上)指向同一个TFS实例,我是否缺少什么


    或者,对于如何在不强制所有构建指向更改的情况下测试对自定义活动的更改,我持开放态度

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

    作为短期修复,请清除打开不同生成定义之间的缓存,以便两个不同dll不会相互冲突

    我之所以有这种双控制器设置是因为controller1 使用自定义活动的路径,即$/Process/Dev和controller2 使用路径$/进程/生产。它可以帮助我测试我在工作中的变化 隔离


    不清楚在哪台机器上打开生成定义,但我假设这是您的开发机器,我在开发时总是将buildtasks.dll放在Visual Studio的公用文件夹中。

    如果我告诉您buildtasks.dll是相同的(例如相同的校验和),您的答案会改变吗?目前,我相信我有开发和生产能力……;-)您使用的是什么TFS版本?出于兴趣,清除缓存/应用程序数据是否有任何改进