TFS 2010 - 未部署自定义构建活动

时间:2011-11-29 06:39:57

标签: visual-studio-2010 tfs2010 build-process

在我的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自动加载最新的程序集,而不必强行重启控制器?

2 个答案:

答案 0 :(得分:5)

终于弄明白了。几个月来我一直在疯狂。即使您的二进制文件在技术上不同(即二进制差异),如果文件版本不同,代理商也只会刷新。

更具体地说,在我的“MyActivities.dll”版本中,我不得不在AssemblyInfo.cs中增加以下两行(旧版本字符串为1.0.0.0):

[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]

一旦我这样做,我做了一个正常的程序集构建,然后检查了新的二进制文件。几分钟内,代理商就可以使用新版本进行更新! :d

如果由于某种原因无法更新版本,则可以使用其他(不太棒的)选项:

  • 将虚拟文件签入同一目录。如果从CustomAssemblies目录添加/删除任何文件,则会强制刷新所有文件
  • 将“自定义程序集的版本控制路径:”值更改为某个虚拟值(无关紧要),应用新值,然后更改回原始目录。只要路径发生变化,就会强制刷新所有文件

“最佳”解决方案是仅更新文件/程序集版本。

答案 1 :(得分:1)

尝试将MyActivities.dll安装到GAC中。我在GAC中拥有所有自定义程序集,但我没有注意到任何问题。