我有一个引用System.Net.Http 4.2.0.0的项目(我最近更新到了最新的nuget包)。现在,我在从ASPNETCOMPILER进行编译的过程中收到此警告(尽管我在类库项目中使用了System.Net.Http,该类库项目已被我的Web项目引用):
以下程序集与.NET版本具有依赖关系 高于目标并且可能无法正确加载的框架 在运行时导致失败的过程中:MyClassLibrary,Version = 1.0.0.0, 文化=中性,PublicKeyToken =空。依赖项是: System.Net.Http,版本= 4.2.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a。您应该确保 依赖程序集对于目标框架是正确的,或确保 您要解决的目标框架是从属框架 部件。 MyWebProject,ASPNETCOMPILER中的警告
我的班级库和Web项目都使用.Net 4.7.2,因此没有更高版本可以使用。该Web项目正在将MVC与System.Web.Mvc 5.2.6结合使用。
是什么原因导致此警告,我该如何消除呢?
答案 0 :(得分:4)
如果您使用的是完整的.NET框架,请完全删除Nuget引用并正常引用System.Net.Http
,因为它已经包含在完整的框架中。
如果该引用是第三方nuget程序包的结果,请告知他们其程序包已损坏,无法完全使用框架。如果他们想支持完整的框架,则应将其作为参考而不是软件包参考。
答案 1 :(得分:1)
我曾经遇到过同样的问题,但是今天它已经落在我身上。我的代码针对.NET 4.7.2,但我的计算机上也安装了.NET 4.8。因此,很明显,AspNetCompiler注意到我的代码从GAC中获取了一些依赖关系,这些依赖关系与.NET 4.8相对应,.NET 4.8具有我的代码所针对的更高版本-4.7.2。因此出现错误消息。
卸载.NET 4.8会删除消息。
您的问题可能具有相同的根本原因-您的本地计算机的.NET Framework版本高于目标版本。要么卸载它,要么修改web.config中控制嵌入式C#代码编译的引用。