使用Microsoft.AspNet.WebApi.Client

时间:2017-11-22 17:41:24

标签: c# asp.net webforms

我有一个带有net47类库的asp.net core 2.0项目。该库使用最新版本的Microsoft.AspNet.WebApi.Client包。

当我将这个dll复制并粘贴到一个完全不同的解决方案中时,Webforms项目和DataLayer类库都以.NET Framework 7.1为目标。

Webforms解决方案中的DataLayer还安装了Microsoft.AspNet.WebApi.Client,但添加了以下内容:

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

我最终得到以下错误:

  

无法加载文件或程序集'System.Net.Http,Version = 4.2.0.0,   Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

幸运的是,我能够通过以下方式解决问题:

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

为什么我必须重定向才能使用版本4.1.1.2。为什么它不能与版本4.2.0.0一起使用?为什么它首先要求4.2.0.0?我假设4.2.0.0来自ASP.NET Core net47类库引用。

0 个答案:

没有答案