Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Některé z nejběžnějších problémů zjištěných při přenosu existujícího kódu z rozhraní .NET Framework do rozhraní .NET jsou závislosti na rozhraních API a technologiích, které se nacházejí pouze v rozhraní .NET Framework. Sada Windows Compatibility Pack poskytuje mnoho z těchto technologií, takže je mnohem jednodušší vytvářet aplikace .NET a knihovny .NET Standard.
Sada compatibility pack je logické rozšíření .NET Standard 2.0 , které výrazně zvyšuje sadu rozhraní API. Existující kód se zkompiluje s téměř žádnými úpravami. Aby se zachoval příslib "sada rozhraní API, která poskytují všechny implementace .NET", .NET Standard nezahrnuje technologie, které nemohou fungovat na všech platformách, jako je registr, rozhraní WMI (Windows Management Instrumentation) nebo API pro generování reflexe. Sada Windows Compatibility Pack je nad rozhraním .NET Standard a poskytuje přístup k těmto technologiím jen pro Windows. Je zvlášť užitečné pro zákazníky, kteří chtějí přejít na .NET, ale plánovat zůstat ve Windows, aspoň jako první krok. V tomto scénáři můžete použít technologie jen pro Windows, které odeberou překážku migrace.
Obsah balíčku
Sada Windows Compatibility Pack je poskytována prostřednictvím balíčku NuGet Microsoft.Windows.Compatibility a lze na ní odkazovat z projektů, které cílí na .NET nebo .NET Standard.
Poskytuje přibližně 20 000 rozhraní API, včetně rozhraní API jen pro Windows a multiplatformních rozhraní API z následujících technologických oblastí:
- Znakové stránky
- CodeDom
- Konfigurace
- Adresářové služby
- Kreslení
- ODBC (Open Database Connectivity)
- Povolení
- Přístavy
- Seznamy řízení přístupu systému Windows (ACL)
- Windows Communication Foundation (WCF)
- Kryptografie systému Windows
- Protokol událostí windows
- WMI (Windows Management Instrumentation)
- Čítače výkonu Windows
- Registr systému Windows
- Ukládání do mezipaměti prostředí Windows Runtime
- Služby Windows
Další informace najdete ve specifikaci sady Compatibility Pack.
Začínáme
Před přenosem se nezapomeňte podívat na proces přenosu.
Při přenosu existujícího kódu do .NET nebo .NET Standard nainstalujte balíček NuGet Microsoft.Windows.Compatibility.
Pokud chcete zůstat ve Windows, máte všechno nastavené.
Pokud chcete spustit aplikaci .NET nebo knihovnu .NET Standard v Linuxu nebo macOS, pomocí analyzátoru kompatibility platformy vyhledejte použití rozhraní API, která nebudou fungovat napříč platformami.
Buď odeberte využití těchto rozhraní API, nahraďte je alternativami pro různé platformy, nebo je omezte pomocí kontroly platformy, například:
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"); }
Ukázku najdete ve videu Channel 9 ukázkové verze sady Windows Compatibility Pack.