在我的teambuild中,我们使用自定义构建过程活动,这些活动部署在
\BuildProcessTemplates\CustomAssemblies\MyActivities.dll
构建控制器配置为从该路径加载程序集。
如果我签入新程序集,那么teambuild不会自动加载新程序集,而是使用旧程序集。实际上似乎使用了最新的构建过程模板,因为我收到了错误:
"TF215097: An error occurred while initializing a build for build definition <myTemplate> Cannot create unknown type <any new type>"
如果我重新启动构建控制器服务,则会考虑最新的程序集。
如何让teambuild自动加载最新的程序集,而不必强行重启控制器?
答案 0 :(得分:5)
终于弄明白了。几个月来我一直在疯狂。即使您的二进制文件在技术上不同(即二进制差异),如果文件版本不同,代理商也只会刷新。
更具体地说,在我的“MyActivities.dll”版本中,我不得不在AssemblyInfo.cs中增加以下两行(旧版本字符串为1.0.0.0):
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]
一旦我这样做,我做了一个正常的程序集构建,然后检查了新的二进制文件。几分钟内,代理商就可以使用新版本进行更新! :d
如果由于某种原因无法更新版本,则可以使用其他(不太棒的)选项:
“最佳”解决方案是仅更新文件/程序集版本。
答案 1 :(得分:1)
尝试将MyActivities.dll安装到GAC中。我在GAC中拥有所有自定义程序集,但我没有注意到任何问题。