我开始更新一些 nuget 包,并开始在构建时收到这些警告,并与 System.Net.Http 发生冲突。正如这里所建议的:
找不到 System.Net.Http 4.2.0.0 的奇怪问题
我替换了对 System.Net.Http 的所有引用以使用 nuget 版本,而不是与 Visual Studio 捆绑的版本。然后我按照随处的建议更改了所有重定向绑定(app.configs 和 web.configs),并且我在本地工作。但..
当我部署到我们的测试服务器时,我仍然收到错误
Could not load file or assembly 'System.Net.Http, 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)
Run Code Online (Sandbox Code Playgroud)
我正在使用 net 4.7.0 和 Visual Studio 2017
我搜索了我所有的配置以查找对版本 4.2.0.0 的引用,但没有找到。为什么 IIS 认为它需要这个?
我的 System.Net.Http nuget 版本是 4.3.4,但实际的 web.config 有这些行
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
我再次可以在本地构建和运行它,但我的服务器报告错误。
更新:我尝试在我的服务器 web.config 上添加这个
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.1.1.3" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
这使得错误消失!但我仍然不明白为什么我需要这样做?比如为什么我的服务器认为它需要使用 4.2.0?
| 归档时间: |
|
| 查看次数: |
5589 次 |
| 最近记录: |