繁体   English   中英

System.Net.Http - 无法加载文件或程序集,然后无法加载要执行的引用程序集

[英]System.Net.Http - Could not load file or assembly, then Cannot load a reference assembly for execution

当我发布 csproj 时,我收到消息:

无法加载文件或程序集 System.Net.Http

如果我将它添加到项目中并重新发布,我会收到以下消息:

[BadImageFormatException: 无法加载要执行的引用程序集。] [BadImageFormatException: 无法加载文件或程序集“System.Net.Http”

所以这就像 catch-22

这是我的 web.config 的 system.web

  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.7.2" />
    <httpRuntime targetFramework="4.6" />
  </system.web>

第一件事:

确保您的所有项目都指向相同版本的 System.Net.Http,您可以通过在编译后检查您的bin文件夹来手动验证这一点。 只需确保 DLL 的版本相同即可。

然后确保你所有的 App.Config/Web.Config 都有一个绑定重定向

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

最后确保您没有意外发布带有 64 位可执行文件的 32 位 DLL。 这也会导致BadImageFormatException

检查您的项目设置以确保您针对的是正确的环境,然后检查您的依赖项以确保它们不会意外地拉/发布错误的 DLL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM