我正在使用.net Framework 4.7.2,并从nuget包中安装了System.Net.Http。我正在使用没有任何API包的简单asp.net表单应用程序。 应用程序构建没有任何问题,但是当我运行该应用程序时,出现以下错误。
无法加载文件或程序集'System.Net.Http'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
这是完整的应用程序跟踪
“ /”应用程序中的服务器错误。无法加载文件或程序集 'System.Net.Http'或其依赖项之一。找到的程序集 清单定义与程序集引用不匹配。 (例外 来自HRESULT:0x80131040)说明:发生未处理的异常 在执行当前Web请求期间。请检查 堆栈跟踪以获取有关该错误及其位置的更多信息 源于代码。
异常详细信息:System.IO.FileLoadException:无法加载文件或 程序集“ System.Net.Http”或其依赖项之一。位于 程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
源错误:
在执行过程中生成了未处理的异常 当前的Web请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
装配体负载跟踪:以下信息可能对 确定为什么无法加载程序集“ System.Net.Http”。
===绑定前状态信息===日志:DisplayName = System.Net.Http(部分)WRN:为服务器提供了部分绑定信息 程序集:WRN:程序集名称:System.Net.Http |域ID:4 WRN:A 当部分装配显示名称为 提供。 WRN:这可能导致活页夹加载不正确 部件。 WRN:建议提供完整指定的文本 程序集的标识WRN:由简单名称组成, 版本,文化和公钥令牌。 WRN:请参阅白皮书 http://go.microsoft.com/fwlink/?LinkId=109270了解更多信息,以及 此问题的常见解决方案。日志:Appbase = 文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/日志: 初始PrivatePath = G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ bin调用 程序集:(未知)。 === LOG:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件: G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ web.config日志: 使用主机配置文件: C:\ Users \ Dharmendra \ Documents \ IISExpress \ config \ aspnet.config日志: 使用机器配置文件从 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。 日志:目前未将政策应用于引用(私有, 自定义,部分或基于位置的程序集绑定)。日志:尝试 下载新网址 文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/vs/67fd7ae1/97340337/System.Net.Http.DLL。日志: 尝试下载新的URL 文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET 文件/vs/67fd7ae1/97340337/System.Net.Http/System.Net.Http.DLL。日志: 尝试下载新的URL 文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/bin/System.Net.Http.DLL。 日志:使用应用程序配置文件: G:\ Projects \ Sanganan \ eClickShipNew \ EasyPost.Web.UI \ web.config日志: 使用主机配置文件: C:\ Users \ Dharmendra \ Documents \ IISExpress \ config \ aspnet.config日志: 使用机器配置文件从 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。 日志:在应用程序配置文件中找到重定向:4.1.1.3 重定向到4.2.0.0。日志:政策后参考:System.Net.Http, 版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a日志: 尝试下载新的URL 文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/vs/67fd7ae1/97340337/System.Net.Http.DLL。日志: 尝试下载新的URL 文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET 文件/vs/67fd7ae1/97340337/System.Net.Http/System.Net.Http.DLL。日志: 尝试下载新的URL 文件:/// G:/Projects/Sanganan/eClickShipNew/EasyPost.Web.UI/bin/System.Net.Http.DLL。 WRN:比较程序集名称会导致不匹配:次要 版本ERR:无法完成装配的设置(hr = 0x80131040)。 探测终止。
堆栈跟踪:
[FileLoadException:无法加载文件或程序集'System.Net.Http' 或其依赖项之一。找到的程序集的清单定义 与程序集引用不匹配。 (来自HRESULT的异常: 0x80131040)]
[FileLoadException:无法加载文件或程序集'System.Net.Http, 版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a'或 它的依赖项之一。找到的程序集的清单定义 与程序集引用不匹配。 (来自HRESULT的异常: 0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,字符串codeBase,证据程序集安全性,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder, 布尔值throwOnFileNotFound,布尔值用于自省,布尔值 hibitSecurityChecks)+0
System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName,字符串 codeBase,证据程序集安全性,运行时程序集locationHint, StackCrawlMark&stackMark,IntPtr,pPrivHostBinder,布尔值 throwOnFileNotFound,用于自检的布尔值,布尔值 hibitSecurityChecks)+36
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark&stackMark,IntPtr,pPrivHostBinder,布尔值 throwOnFileNotFound,用于自检的布尔值,布尔值 hibitSecurityChecks)+152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据集安全性,StackCrawlMark和stackMark,IntPtr pPrivHostBinder,用于自省的布尔值)+77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, 证据汇编安全性,StackCrawlMark和stackMark,布尔值 forIntrospection)+21 System.Reflection.Assembly.Load(字符串 assemblyString)+28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔型starDirective)+38[ConfigurationErrorsException:无法加载文件或程序集 'System.Net.Http,版本= 4.2.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的 找到的程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔型starDirective)+728
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +196 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+45
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+172
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串 preStartInitListPath,布尔值和isRefAssemblyLoaded)+111
System.Web.Compilation.BuildManager.ExecutePreAppStart()+156
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost,appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParametershostingParameters, PolicyLevel policyLevel,异常appDomainCreationException)+695[HttpException(0x80004005):无法加载文件或程序集 'System.Net.Http,版本= 4.2.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的 找到的程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+659
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+89 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+188版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.7.3190.0
这是packages.config文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AspNet.ScriptManager.jQuery" version="3.3.1" targetFramework="net471" />
<package id="AspNet.ScriptManager.jQuery.UI.Combined" version="1.12.1" targetFramework="net471" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net471" />
<package id="DotNetOpenAuth.AspNet" version="4.3.4.13329" targetFramework="net471" />
<package id="DotNetOpenAuth.Core" version="4.3.4.13329" targetFramework="net471" />
<package id="DotNetOpenAuth.OAuth.Consumer" version="4.3.4.13329" targetFramework="net471" />
<package id="DotNetOpenAuth.OAuth.Core" version="4.3.4.13329" targetFramework="net471" />
<package id="DotNetOpenAuth.OpenId.Core" version="4.3.4.13329" targetFramework="net471" />
<package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.3.4.13329" targetFramework="net471" />
<package id="EasyPost-Official" version="2.5.1" targetFramework="net472" />
<package id="EnterpriseLibrary.Common" version="6.0.1304.0" targetFramework="net471" />
<package id="EnterpriseLibrary.Logging" version="6.0.1304.0" targetFramework="net471" />
<package id="EntityFramework" version="6.2.0" targetFramework="net471" />
<package id="iTextSharp" version="5.5.13" targetFramework="net471" />
<package id="jQuery" version="3.3.1" targetFramework="net471" />
<package id="jQuery.UI.Combined" version="1.12.1" targetFramework="net471" />
<package id="Microsoft.AspNet.Membership.OpenAuth" version="2.0.1" targetFramework="net471" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net471" />
<package id="Microsoft.AspNet.Providers.LocalDB" version="2.0.0" targetFramework="net471" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net471" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net471" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net471" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
<package id="Modernizr" version="2.8.3" targetFramework="net471" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net471" />
<package id="RestSharp" version="106.5.2" targetFramework="net471" />
<package id="System.Buffers" version="4.5.0" targetFramework="net472" />
<package id="System.Configuration.ConfigurationManager" version="4.5.0" targetFramework="net471" />
<package id="System.IO" version="4.3.0" targetFramework="net471" />
<package id="System.Memory" version="4.5.1" targetFramework="net472" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net472" />
<package id="System.Net.Http.Formatting.Extension" version="5.2.3.0" targetFramework="net472" />
<package id="System.Net.Http.WinHttpHandler" version="4.5.1" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Reflection.Emit" version="4.3.0" targetFramework="net471" />
<package id="System.Runtime" version="4.3.0" targetFramework="net471" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
<package id="System.Security.AccessControl" version="4.5.0" targetFramework="net471" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net471" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net471" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net471" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net471" />
<package id="System.Security.Permissions" version="4.5.0" targetFramework="net471" />
<package id="System.Security.Principal.Windows" version="4.5.1" targetFramework="net471" />
<package id="Unity" version="5.8.11" targetFramework="net471" />
<package id="Unity.Abstractions" version="3.3.1" targetFramework="net471" />
<package id="Unity.Interception" version="5.5.5" targetFramework="net471" />
</packages>
答案 0 :(得分:1)
如果目标是.NET Framework,则无需通过NuGet包引用System.Net.Http。相反,您应该引用框架的System.Net.Http,方法是右键单击“引用”->“添加引用...”,然后从“程序集”->“框架”列表中选择System.Net.Http。
答案 1 :(得分:0)
我有类似的问题。在我的情况下,对System.Net.Http
的引用指向.dll
文件夹中的.dll
以外的其他packages
。尝试检查引用是否确实指向.dll
文件夹中的packages
文件