Você precisa editar manualmente o arquivo de projeto e adicionar s ao TargetFrameworks padrão e basicamente alterá-lo para TargetFrameworks . Então você menciona o Moniker com um ; separador.
Além disso, você pode colocar as referências do pacote Nuget em um ItemGroup condicional manualmente ou usando o VS Nuget Package Manager.
Esta é a aparência do seu .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>
Outra solução alternativa que faço atualmente por causa da documentação ausente é que eu crio um projeto no VS2015 e formo o project.json usando a documentação disponível e o intellisense, então abro a solução no VS2017 e uso a atualização embutida. Em seguida, examinarei o arquivo csproj para descobrir como fazer essa configuração acontecer.
Múltiplos alvos mais esotéricos sem um Moniker :
Microsoft:
PCLs não são recomendados +
Embora PCLs sejam suportados, os autores de pacotes devem oferecer suporte ao netstandard. O .NET Platform Standard é uma evolução dos PCLs e representa a portabilidade binária entre plataformas usando um único moniker que não está vinculado a um moniker estático, como portable-a + b + c monikers.
Se você quiser atingir um perfil portátil não tem um pré-definidos apelido tão Profiles portáteis também não pode inferir TargetFrameworkIdentifier
, TargetFrameworkVersion
e TargetFrameworkProfile
. Além disso, uma constante do compilador não é definida automaticamente. Finalmente, você deve adicionar todas as referências de assembly, nenhuma delas é fornecida por padrão.
O exemplo abaixo foi tirado de um projeto que usava a dynamic
palavra-chave, portanto, além disso, precisava da Microsoft.CSharp
montagem, portanto, você pode ver como é referência para diferentes destinos.
<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>