В настоящее время я использую выпуск Visual Studio 2017 Enterprise.Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я устанавливаю в проект последний пакет nuget System.Net.Http (4.3.3), ссылка System.Net.Http, похоже, предпочитает указывать на версию расширений VS EnterpriseSystem.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>
и настройку «HintPath» в файле .csproj:
<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.Мне нужно иметь возможность использовать null-версию System.Net.Http dll, потому что у меня есть другая библиотека (Serilog), которая зависит от нее.
Два вопроса: (1) Почему это происходит?(2) Как заставить его игнорировать его версию VS Enterprise?