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

Code builds fine in VS (2017) but not msbuild or TFS "assemblies manifest does not match the assembly reference

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

##[error]ASPNETCOMPILER(0,0): Error ASPCONFIG: Could not load file or assembly 'PacsgearLib, Version=2.5.4.0, Culture=neutral, PublicKeyToken=05b30ac9ab9dbb8e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Pacsgearlib 2.5.4 是我刚刚生成的 NuGet 包,但我们所有其他项目都构建良好(并且它们共享很多相同的代码)。主要区别在于该项目中有一个网站。 MSBuild 版本为 15.5.180.51428。

这是实际错误的图片:

有什么想法吗?我试过 NuGet 包管理器来卸载包并为网站重新安装它,但没有帮助。

我已经做了几个小时了,所以我想也许其他人(或另一双眼睛)可能会有所帮助。

我也刚刚看到 this 并且会在星期一早上第一时间查看它。

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

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

另一种方法是更新您的包版本号(不更新包内容),使用 TFS 再次触发构建。检查 TFS 构建服务器是否会选择最新版本的包。

同时将 system.debug=true 设置为 Enable Verbose Debug Mode,并提供更详细的故障排除日志信息

我终于通过删除 web.config 的程序集绑定部分(其他人在另一个相关的 post 中建议)使它起作用,我还发现了一些没有的 .csproj 文件已正确更新且仍指向 2.5.3。