今天将 Application Insights 升级到最新版本后,由于我们的站点不再报告调用堆栈,我们的 .NET Framework 4.6.1 ASP.NET 站点现在在初始化时崩溃,原因如下:
System.IO.FileLoadException: 'Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'
我过去在另一份工作中也曾遇到过类似的问题。关键区别在于该问题是由引入 .NET Core 或 Standard 的 Nuget 包引起的。因此,多个同名的 .NET DLL 被复制到 bin 文件夹(在这种情况下为 System.Net.Http)。在这种情况下,就像不再更新 Nuget 包一样“简单”......
尽管我认为这里的情况略有不同,但“不升级”不再是一个选择。Application Insights 不再报告调用堆栈有点违背了整个事情的目的!
由于它是 System.Runtime,而不是 Nuget 包,因此配置文件中没有用于 nuke 的依赖版本标记;尽管这样也行得通,但无论如何,这似乎只是一个临时解决方案。
我推测现在项目中的某个地方可能隐藏着 .NET Core 的 .NET 标准,但我没有看到 NetStandard 参考,而且我不知道如何判断 Core 是否被以某种方式拖入。我还没有愉快地(?)使用标准版或核心版,还没有立即了解更多信息。我会继续谷歌搜索...
我认为这是因为我们有一个 .NET 3.5 DLL(除了普通的 .NET Framework 3.5 的 System、System.Runtime.Serialization 和 System.Xml 之外,Nuget 或 DLL 引用为零),被 ASP.NET 项目引用,尽管这以前从未出现过问题。
我完全被难住了,并停止了当天的所有开发。我一直在升级和降级各种软件包,查看它们的先决条件,但我没有找到任何提示。
慕无忌1623718
相关分类