代码在VS(2017)中构建良好,但在msbuild或TFS中没有;程序集清单与程序集引用不匹配

代码在VS(2017)中构建良好,但在msbuild或TFS中没有;程序集清单与程序集引用不匹配,msbuild,visual-studio-2017,nuget,tfsbuild,Msbuild,Visual Studio 2017,Nuget,Tfsbuild,好的,我们又来了。我发布了一个几乎相同的问题,但这个问题有点不同。我刚刚生成了一个新版本的NuGet软件包,并更新了所有的csproj和配置文件以指向它,它在本地构建得很好,但当我启动TFS构建时,它失败了,并显示以下消息: ##[错误]ASPNETCOMPILER(0,0):错误ASPCONFIG:无法加载文件或程序集“PacsgearLib,版本=2.5.4.0,区域性=中性, PublicKeyToken=05b30ac9ab9dbb8e'或其依赖项之一。这个 定位程序集的清单定义与程序集

好的,我们又来了。我发布了一个几乎相同的问题,但这个问题有点不同。我刚刚生成了一个新版本的NuGet软件包,并更新了所有的csproj和配置文件以指向它,它在本地构建得很好,但当我启动TFS构建时,它失败了,并显示以下消息:

##[错误]ASPNETCOMPILER(0,0):错误ASPCONFIG:无法加载文件或程序集“PacsgearLib,版本=2.5.4.0,区域性=中性, PublicKeyToken=05b30ac9ab9dbb8e'或其依赖项之一。这个 定位程序集的清单定义与程序集不匹配 参考资料。(来自HRESULT的异常:0x8013100)

pacsgearlib2.5.4是我刚刚生成的NuGet包,但是我们所有的其他项目都构建得很好(它们共享很多相同的代码)。主要的区别是这个项目有一个网站。MSBuild的版本为15.5.180.51428

下面是实际错误的图片:

有什么想法吗?我尝试过NuGet package manager卸载该软件包并重新安装到网站上,但没有任何帮助

我已经做了几个小时了,所以我想也许其他人(或者第二双眼睛)会帮上忙


我也刚刚看到了,周一早上第一件事就是查看它。

如果本地构建很好,并且TFS构建存在错误。此外,我们所有的其他项目都构建得很好(它们共享很多相同的代码)

结合两者,问题可能与构建代理上的特定包
PacsgearLib,版本=2.5.4.0
有关。您可以尝试删除包并清除生成代理,然后重试

另一种方法是更新包版本号(不要更新包内容),使用TFS再次触发构建。检查TFS生成服务器是否将获取包的最新版本


另外,将
system.debug=true
设置为,并提供更多详细的日志信息,以便进行故障排除我最终通过取出web.config的assemblybinding部分实现了这一点(其他人在另一篇相关文章中建议)我还发现一些.csproj文件没有正确更新,仍然指向2.5.3。

我尝试删除包并重新启动构建,但没有任何帮助。我还启用了详细调试,这也没有帮助。(关于错误的日志是相同的)。顺便说一句,当我生成一个新的NuGet包并启动TFS构建时,它总是无法将新包获取到构建服务器。我必须在构建服务器上打开解决方案并手动恢复包,然后构建才能完成。你知道为什么会这样吗?我尝试在构建中添加NuGet步骤,但似乎不起作用。生成一个新的NuGet包是一个很大的难题,需要我更改所有引用它的大约130个.csproj和.config文件。如果没有别的办法,也许我会试试。