VS Enterprise .NET Build Extensions 版本的 System.Net.Http 将覆盖预



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

C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuildMicrosoftMicrosoft.NET.Build.Extensionsnet471libSystem.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 文件中设置"提示路径":

<Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..packagesSystem.Net.Http.4.3.3libnet46System.Net.Http.dll</HintPath>
</Reference>

但它仍然只是不断回弹到上面的VS企业扩展版本。 我需要能够使用System.Net.Http dll的nuget版本,因为我有另一个依赖于它的库(Serilog(。

两个问题:(1(为什么会这样? (2(如何强制它忽略VS企业版?

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

如果你正在构建一个.NET Framework 4.6.x应用,你应该只使用。 对System.Net.Http的标准引用,并且不引入任何Nuget System.Net.Http 的包。

您可以尝试将项目中的 .net 框架升级到最新版本。有关此问题的详细信息:从 MSBuild 工具复制/加载的系统.Net.Http v4.2.0.0

最新更新