Diciamo che avete un progetto .NET Nucleo che assomiglia a questo:Come passare tra i quadri di riferimento per i progetti fondamentali .NET in Visual Studio
"frameworks": {
"net40": {},
"dotnet5.1": {}
}
E questo è il vostro codice C#:
public class Foo
{
public static void Blah()
{
#if DOTNET5_1
DoSomething();
#elif NET40
DoSomethingElse();
#endif
}
}
Ora, in Visual Studio quando si visualizza il file .cs
, una delle sezioni #if
verrà visualizzata in grigio - DoSomething
o DoSomethingElse
. Ecco come si presenta sul mio portatile:
E 'possibile ottenere VS a 'contesto 'interruttore' tra le piattaforme di destinazione, in modo da poter vedere quello che sarebbe stato compilato per una particolare piattaforma? Ad esempio, potrei voler verificare eventuali linee ondulate rosse per ciascun framework prima di costruire effettivamente la soluzione.
Qualsiasi aiuto sarebbe apprezzato, grazie!
In una nota a margine, perché stai mirando a 'net40'? La libreria di classi non sarà compatibile con .NET Core in esecuzione su .NET Framework completo poiché la versione minima supportata è .NET 4.5.1. https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md Avrai bisogno almeno di un multitargeting 'net451' e' net40' per supportare sia, 4.0 che (ASP) .NET Core contro Full .NET Framework/Mono – Tseng
@Tseng Fare riferimento al documento collegato. 'dotnet5.1' si prenderà cura di .NET 4.5, Windows 8 e della maggior parte delle altre piattaforme. 'net40' si prenderà cura di .NET 4.0. –
@JamesKo Poiché molti metodi di sincronizzazione vengono rimossi a favore delle alternative asincrone (nei socket e così via), il targeting di .NET 4 sarebbe complicato. Anche .NET 4 è alla fine della vita e .NET 4.5.2 è la nuova linea di base. –