在我的项目中,在VisualStudio 2013和2012中的Build Definition文件中打开Process选项卡需要2-3分钟。
在打开其内容时,选项卡显示“正在下载自定义程序集”。
一旦完成,并显示内容,我会看到各种警告和错误,例如:
Summary: There were 0 failures, 404 errors and 15 warnings loading custom activities and services.
...
Error: Could not load file or assembly 'Infrastructure.Interface, Version=1.0.3981.21634, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
...
Error: API restriction: The assembly 'file:///C:\Users\<username>\AppData\Local\Temp\VSTFSBuild\8809fd18-08a3-4d58-8a87-35bbc833a4ed\1163529353\ThirdPartyBinaries\vjredist64\vjscor.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.
...
Warning: Could not load file or assembly 'file:///C:\Users\<username>\AppData\Local\Temp\VSTFSBuild\8809fd18-08a3-4d58-8a87-35bbc833a4ed\1163529353\ThirdPartyBinaries\SQLXML 4.0\cvtschema.exe' or one of its dependencies. The module was expected to contain an assembly manifest.
有人可以告知问题是什么以及如何解决这个问题?感谢。
答案 0 :(得分:1)
TFS构建控制器和代理可以拥有自定义活动,并且可以在控制器的Version control path to custom assemblies
设置中指示的路径上从源代码管理中下载它们。
由于模板可能会使用这些自定义程序集中的自定义类型,因此当您打开Edit Build Definition -> Process
或Queue new build -> Parameters
时,VS也需要它们。所以VS下载它们,不幸的是它没有本地缓存,因此每次都会下载它们。此外,VS会将程序集加载到VS进程中,这可能会导致Could not load file or assembly...
错误。
正如您所发现的,解决方案是将组件减少到最低程度。