.NET 4.5.1과 .NET Standard 1.3을 모두 대상으로하는 클래스 라이브러리를 작성하려고합니다.csproj 파일에서 다중 타겟팅을 할 때 오류가 발생합니다.
그러나<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
, 내가 빌드 할 때, 나는이 이상한 오류를 얻을 :
TargetFramework에서 TargetFrameworkIdentifier 및/또는 TargetFrameworkVersion을 추론 할 수 없습니다 = 'the documentation에 따르면,이 작업을 수행 할 수 있어야한다 net451 '. 명시 적으로 지정해야합니다.
MSB3645 .NET Framework 버전 3.0 서비스 팩 1을 (를) 찾을 수 없습니다. ".NETFramework, Version = v1.3"을 대상으로하려면 .NET Framework v3.5 서비스 팩 1 이상이 설치되어 있어야합니다.
MSB3644 프레임 워크 ".NETFramework, Version = v1.3"의 참조 어셈블리를 찾을 수 없습니다. 이 문제를 해결하려면이 프레임 워크 버전의 SDK 또는 Targeting Pack을 설치하거나 SDK 또는 Targeting Pack이 설치된 프레임 워크 버전으로 응용 프로그램의 대상을 다시 지정하십시오. 어셈블리는 GAC (전역 어셈블리 캐시)에서 확인되고 참조 어셈블리 대신 사용됩니다. 따라서 어셈블리가 의도 한 프레임 워크에 맞게 올바르게 타겟팅되지 않을 수 있습니다.
나는 대상 프레임 워크 식별자를 지정하는 경우
수동으로 그것을 잘 구축 : 나는 비주얼 스튜디오 2017 커뮤니티을 사용하고<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net451'">
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
</PropertyGroup>
. 내가 여기서 뭔가 잘못하고있는거야?
당신이 당신의 전체 .csproj를 공유 할 수없는? 나는 이 이 <프로젝트 SDK = "Microsoft.NET.Sdk는"> 이 는 net451이있다; netstandard1.3는 <이 TargetFrameworks는 /> 가 PropertyGroup> 그리고이 빌드 대단한 VS 2017 Enterprise. –
"s"태그의 끝을 사용해야합니다. 그래서 TargetFramework가 아니라 TargetFramework ** ** ** – user3107888