Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcuni dei problemi più comuni riscontrati durante la conversione di codice esistente da .NET Framework a .NET sono dipendenze da API e tecnologie disponibili solo in .NET Framework. Windows Compatibility Pack offre molte di queste tecnologie, quindi è molto più semplice compilare applicazioni .NET e librerie .NET Standard.
Il pacchetto di compatibilità è un'estensione logica di .NET Standard 2.0 che aumenta significativamente il set di API. Il codice esistente viene compilato senza modifiche. Per mantenere la promessa di ".NET Standard come set standard di API fornite da tutte le implementazioni .NET", .NET Standard non include tecnologie che non possono funzionare su tutte le piattaforme, ad esempio il Registro di sistema, la Strumentazione gestione Windows (WMI) o le API di emissione di riflessioni. Il Windows Compatibility Pack è basato su .NET Standard e fornisce accesso a tecnologie disponibili solo per Windows. È particolarmente utile per i clienti che vogliono passare a .NET, ma prevedono di rimanere in Windows, almeno come primo passaggio. In questo scenario, l'uso di tecnologie esclusive per Windows rimuove l'ostacolo alla migrazione.
Contenuto del pacchetto
Il Windows Compatibility Pack viene fornito tramite il pacchetto NuGet Microsoft.Windows.Compatibility e può essere referenziato dai progetti che mirano a .NET o .NET Standard.
Fornisce circa 20.000 API, incluse le API solo Windows e multipiattaforma, dalle aree tecnologiche seguenti:
- Tabelle codici
- CodeDom
- Configurazione
- Servizi Directory
- Disegno
- ODBC
- Autorizzazioni
- Porte
- Elenchi di controllo di accesso di Windows
- Windows Communication Foundation (WCF)
- Crittografia di Windows
- Registro eventi di Windows
- Strumentazione gestione Windows (WMI)
- Contatori delle prestazioni di Windows
- Registro di sistema di Windows
- Memorizzazione nella cache di Windows Runtime
- Servizi Windows
Per altre informazioni, vedere la specifica del pacchetto di compatibilità.
Inizia subito
Prima della conversione, assicurarsi di esaminare il processo di conversione.
Quando si esegue la conversione di codice esistente in .NET o .NET Standard, installare il pacchetto NuGet Microsoft.Windows.Compatibility.
Se vuoi rimanere su Windows, sei a posto.
Se si vuole eseguire l'applicazione .NET o la libreria .NET Standard in Linux o macOS, usare l'analizzatore compatibilità della piattaforma per trovare l'uso delle API che non funzioneranno su più piattaforme.
Rimuovere gli utilizzi di tali API, sostituirli con alternative multipiattaforma o proteggerli usando un controllo della piattaforma, ad esempio:
private static string GetLoggingPath() { // Verify the code is running on Windows. if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Fabrikam\AssetManagement")) { if (key?.GetValue("LoggingDirectoryPath") is string configuredPath) return configuredPath; } } // This is either not running on Windows or no logging path was configured, // so just use the path for non-roaming user-specific data files. var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); return Path.Combine(appDataPath, "Fabrikam", "AssetManagement", "Logging"); }
Per una demo, vedere il video di Channel 9 di Windows Compatibility Pack.