2017-12-07 7 views
0

웹 프로젝트 중 하나를 ASP.NET Core 2.0으로 업그레이드했으며 어셈블리 버전이 맞지 않아 다른 프로젝트에서 오류가 발생했습니다. 모든 충돌하는 어셈블리를 가장 높은 버전으로 업그레이드하려고합니다..net 표준없이 최신 System. * 어셈블리를 사용할 수 있습니까?

예를 들어 nuget 패키지의 이전 버전은 1.3.1이지만 ASP.NET Core 2 프로젝트에서 참조하는 버전은 1.4.0입니다. System.Collections.Immutable이 참조된다 그래서 나는 .csproj 파일이 변경하려고은 : 내가 할 모든의

The version of Microsoft.NET.Sdk used by this project is insufficient to support references to libraries targeting .NET Standard 1.5 or higher. Please install version 2.0 or higher of the .NET Core SDK.

첫째 :

<ItemGroup> 
    <PackageReference Include="System.Collections.Immutable" Version="1.4.0" /> 
</ItemGroup> 

그러나,이 컴파일 오류가 발생합니다 .NET Core 2.0 SDK가 설치되어 있어야합니다. 그 주위에 인터넷 검색은 < DependsOnNETStandard> 속성을 csproj 파일에 추가하고 NETStandard.Library를 참조한다는 제안이있었습니다. 그러나 우리 코드는 netstandard가 아닌이 아닌 .NET Framework를 최대한 활용하기 때문에 그렇게 할 수 없습니다.

어떻게 작동합니까?

참고로, 우리는 Visual Studio 15.3.3 및 .NET 4.6.2를 사용하고 있습니다.

+0

공유 라이브러리에서'netstandard2.0'을 대상으로해야한다고 생각합니다. 이것은 여전히 ​​혼란 스럽습니다. –

+0

라이브러리에서 .NET Framework 전용 코드를 사용하고 있습니다. 나는 그것을 작동 시키려고 노력했지만, 할 수 없었다. – afeygin

+2

Aluan, Visual Studio 버전 15.3.3은 Visual Studio 2017입니다. netcoreapp2.0을 대상으로하지 않습니다. .NET Framework 4.6.2를 대상으로합니다. ASP.NET Core 2.0 프로젝트에서 내 응용 프로그램의 DLL을 참조하기 만하면됩니다. 현재 System.Collections.Immutable, System.Diagnostics.Diagnosticsource 및 System.Numerics.Vectors의 여러 버전을 참조하고 있습니다. – afeygin

답변

0

csproj 파일에 DependsOnNETStandard를 추가하면 NETStandard.Library에 대한 참조가 전체 프레임 워크와의 호환성을 손상시키지 않습니다. 현재 .NET Framework 4.6.1을 대상으로하는 ASP.NET Core 2.0 웹 응용 프로그램, .NET Standard 및 .NET Framework 클래스 라이브러리 및 수십 개의 OOB .NET Standard 패키지를 참조하는 프로젝트를 진행하고 있습니다.