간단한 참조로 .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 닷넷 4.6.2 및 .Net 표준 1.1에 대해 컴파일 된 Microsoft.Extensions.Configuration에 대해 컴파일하십시오. 따라서 4.6.2가 설치된 컴퓨터에서 작동해야합니다. 그러나 4.6.2 System.Net.Http 4.1.0.0이 새로운 버전이 포함되어 있지 않습니다
그래서 내 질문은 내 어셈블리의 직접적인 참조를 패키지의 전이 의존성 버전으로 업그레이드하는 것을 멈출 수있는 방법입니다. 용도?
감사합니다.
MsBuild의 AutoUnify 기능 때문입니다. 그러나 AutoUnify에 대한 정보는 거의 없습니다. 그리고 그것을 끄는 방법이 명확하지 않습니다. –