System.Net.Http的VS Enterprise .NET Build Extensions版本覆盖了预期的4.3.3 nuget版本

时间:2018-06-13 01:53:27

标签: visual-studio http nuget enterprise-library system.net

我目前正在使用Visual Studio 2017企业版。我遇到的问题是,每次我将最新的System.Net.Http nuget软件包(4.3.3)安装到项目中时,System.Net.Http引用似乎更倾向于指向VS Enterprise扩展版本System.Net.Http:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net471\lib\System.Net.Http.ddl

我尝试了一切来强制它使用nuget版本,包括绑定重定向:

  <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>

并在.csproj文件中设置“HintPath”:

<Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll</HintPath>
</Reference>

但它仍然只是回到上面的VS Enterprise扩展版本。我需要能够使用Nuget版本的System.Net.Http dll因为我有另一个依赖它的库(Serilog)。

两个问题:(1)为什么会发生这种情况? (2)如何强制它忽略它的VS Enterprise版本?

1 个答案:

答案 0 :(得分:1)

这看起来像.net framework 4.6中引用包的一些问题:

  

如果您正在构建.NET Framework 4.6.x应用程序,则应该使用   System.Net.Http的标准引用,并没有引入任何Nuget   System.Net.Http。

的软件包

您可以尝试将项目中的.net框架升级到最新版本。有关此问题的详细信息:System.Net.Http v4.2.0.0 being copied/loaded from MSBuild tooling