Necesita editar manualmente el archivo del proyecto y agregar s al TargetFramework predeterminado y básicamente cambiarlo a TargetFrameworks . Luego mencionas el apodo con un ;separador.
También puede poner las referencias del paquete Nuget en un ItemGroup condicional manualmente o usando VS Nuget Package Manager.
Así es como debería verse su .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>
Otra solución alternativa que hago en estos días debido a la falta de documentación es que creo un proyecto en VS2015 y formo el project.json usando la documentación disponible e intellisense, luego abro la solución en VS2017 y uso la actualización incorporada. Luego miraré el archivo csproj para averiguar cómo hacer que suceda esa configuración.
Orientación múltiple a objetivos más esotéricos sin un Moniker :
Microsoft:
No se recomiendan los PCL +
Aunque se admiten PCL, los autores de paquetes deberían admitir netstandard en su lugar. El .NET Platform Standard es una evolución de las PCL y representa la portabilidad binaria entre plataformas utilizando un único apodo que no está vinculado a un estático como los apodos portable-a + b + c.
Si desea dirigirse a un perfil portátil que no tiene predefinido apodo de manera Perfiles portátiles también no puede inferir TargetFrameworkIdentifier
, TargetFrameworkVersion
y TargetFrameworkProfile
. Además, una constante del compilador no se define automáticamente. Finalmente, debe agregar todas las referencias de ensamblaje, ninguna se proporciona por defecto.
Este ejemplo a continuación se tomó de un proyecto que usó la dynamic
palabra clave, por lo que también necesitaba el Microsoft.CSharp
ensamblaje, por lo que puede ver cómo son las referencias para diferentes objetivos.
<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>