수동으로 편집하여 프로젝트 파일 및 추가 필요 의 기본에 TargetFramework을 기본적으로 변경 TargetFrameworks . 그런 다음 모니 커 에 대해 ; 분리 기호.
또한 수동으로 또는 VS Nuget 패키지 관리자를 사용하여 Nuget 패키지 참조를 조건부 ItemGroup에 넣을 수 있습니다.
.csproj의 모습은 다음과 같습니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.6;net452</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net452'">
<PackageReference Include="Microsoft.Azure.DocumentDB">
<Version>1.12.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.6'">
<PackageReference Include="Microsoft.Azure.DocumentDB.Core">
<Version>1.1.0</Version>
</PackageReference>
</ItemGroup>
</Project>
문서 누락으로 인해 요즘 내가 수행하는 또 다른 해결 방법은 VS2015에서 프로젝트를 만들고 사용 가능한 문서와 인텔리 젠스를 사용하여 project.json을 만든 다음 VS2017에서 솔루션을 열고 기본 제공 업그레이드를 사용하는 것입니다. 그런 다음 csproj 파일을 살펴보고 해당 구성을 수행하는 방법을 알아 봅니다.
모니 커 없이 더 난해한 타겟을 다중 타겟팅 :
마이크로 소프트 :
PCL은 권장되지 않습니다 +
PCL이 지원되지만 패키지 작성자는 대신 netstandard를 지원해야합니다. .NET Platform Standard는 PCL의 진화이며 portable-a + b + c 모니 커와 같은 정적에 연결되지 않은 단일 모니 커를 사용하여 플랫폼 간 이진 이식성을 나타냅니다.
당신이 휴대용 프로필을 대상으로 할 경우는 미리 정의되어 있지 않은 별명 도 할 수없는 추론 휴대용 프로필 정도 TargetFrameworkIdentifier
, TargetFrameworkVersion
하고 TargetFrameworkProfile
. 또한 컴파일러 상수는 자동으로 정의되지 않습니다. 마지막으로 기본적으로 제공되지 않는 모든 어셈블리 참조를 추가해야합니다.
아래의이 예제는 dynamic
키워드 를 사용한 프로젝트에서 가져온 것이므로 Microsoft.CSharp
어셈블리가 추가로 필요 하므로 다른 대상에 대한 참조를 확인할 수 있습니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.5;net40;portable40-net45+sl5+win8+wp8</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='portable40-net45+sl5+win8+wp8'">
<TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile158</TargetFrameworkProfile>
<DefineConstants>$(DefineConstants);PORTABLE158</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='netstandard1.5'">
<PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
<PackageReference Include="System.ComponentModel" Version="4.3.0" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'=='net40'">
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)'=='portable40-net45+sl5+win8+wp8'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Windows" />
</ItemGroup>
</Project>