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

use*_*719 4 build-process visual-studio-2010 tfs2010

在我的teambuild中,我们使用自定义构建过程活动,这些活动部署在

\BuildProcessTemplates\CustomAssemblies\MyActivities.dll
Run Code Online (Sandbox Code Playgroud)

构建控制器配置为从该路径加载程序集.

如果我签入新程序集,那么teambuild不会自动加载新程序集,而是使用旧程序集.实际上似乎使用了最新的构建过程模板,因为我得到了错误:

"TF215097: An error occurred while initializing a build for build definition <myTemplate> Cannot create unknown type <any new type>"
Run Code Online (Sandbox Code Playgroud)

如果我重新启动构建控制器服务,则会考虑最新的程序集.

如何让teambuild自动加载最新的程序集,而不必强制重启控制器?

sup*_*ime 5

终于搞清楚了.几个月来我一直在疯狂.即使您的二进制文件在技术上不同(即二进制差异),看起来代理只有在文件版本不同时才会刷新.

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

[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]
Run Code Online (Sandbox Code Playgroud)

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

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

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

不过,"最佳"解决方案是更新文件/程序集版本.