当我发布一个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>
答案 0 :(得分:2)
第一件事:
确保所有项目都指向同一版本的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。
答案 1 :(得分:0)
我通过安装https://support.microsoft.com/en-us/help/4054531/microsoft-net-framework-4-7-2-web-installer-for-windows上的.Net Framework 4.7.2解决了该问题。