私は簡単な参照で.csprojプロジェクトを持っています。私もNuGetのためproject.jsonいるNuGetを使用している場合の参照のアップグレードを防ぐ方法
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
...
<ItemGroup>
<Reference Include="System.Net.Http" />
</ItemGroup>
...
は、この設定でうまく動作するために使用
{
"dependencies": {
"SomePackage": "1.1.1-beta",
},
"runtimes": {
"win": {}
},
...
を参照します。 しかし、最近になって「SomePackageは」推移的依存関係の束によってNETStandard.Libraryに依存して、別のパッケージに依存し始めた」バージョン= 『1.6.1』
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Microsoft.Extensions.Configuration</id>
<version>1.1.0</version>
<dependencies>
<group targetFramework=".NETStandard1.1">
<dependency id="Microsoft.Extensions.Configuration.Abstractions" version="1.1.0" />
<dependency id="NETStandard.Library" version="1.6.1" />
</group>
</dependencies>
</metadata>
</package>
NETStandard.Libraryは、System.Netの新しいバージョンに依存します。 HTTP 4.1.0.0
そして、私はプロジェクトをコンパイルするとき、アセンブリが直接新しいバージョンSystem.Net.Httpを参照し始める。
そしてもちろん、それは実行時にこのDLLを要求し始める。
I .NET標準に対してコンパイルされた.NET 4.6.2とMicrosoft.Extensions.Configurationに対してコンパイル1.1。したがって、4.6.2がインストールされたマシンで動作するはずです。 4.6.2にはこの新しいバージョンのSystem.Net.Http 4.1.0.0が含まれていません
NuGetとMsBuildが私のアセンブリの直接参照をパッケージIの過渡的な依存関係のバージョンにアップグレードするのを止める方法は私の質問ですつかいます?
ありがとうございます。
これは、MsBuildのAutoUnify機能が原因であることがわかりました。しかし、AutoUnifyについての情報はほとんどありません。それをオフにする方法は明確ではありません。 –