použití sady Compatibility Pack Windows pro kód portu .net 5 +

některé nejběžnější problémy nalezené při přenosu stávajícího kódu z .NET Framework do .net jsou závislosti na rozhraních api a technologiích, které se nacházejí pouze v .NET Framework. sada Windows Compatibility Pack poskytuje mnoho z těchto technologií, takže je mnohem snazší sestavovat aplikace .net a knihovny .NET Standard.

Sada Compatibility Pack je logické rozšíření .NET Standard 2,0 , které významně zvyšuje sadu rozhraní API. Existující kód se zkompiluje téměř bez úprav. aby se zajistilo, že se jedná o sadu rozhraní api, která poskytují všechny implementace rozhraní .net, .NET Standard nezahrnuje technologie, které nemůžou fungovat na všech platformách, jako je registr, rozhraní WMI (Windows Management Instrumentation) (WMI) nebo rozhraní api pro vygenerování reflexe. sada Compatibility Pack Windows je umístěna na .NET Standard a poskytuje přístup k těmto technologiím, které pouze Windows. to je zvlášť užitečné pro zákazníky, kteří se chtějí přesunout do .net, ale mají v úmyslu zůstat na Windows, nejméně jako první krok. v takovém scénáři můžete použít jenom Windows technologie odstraní mezní hodnoty.

Obsah balíčku

sada Windows Compatibility Pack je k dispozici prostřednictvím Microsoft. Windows. balíček kompatibility NuGet a lze na něj odkazovat z projektů cílených na rozhraní .net nebo .NET Standard.

poskytuje informace o rozhraních api 20 000, Windows včetně rozhraní api pro více platforem, a to z následujících technologických oblastí:

  • Znakové stránky
  • CodeDom
  • Konfigurace
  • Adresářové služby
  • Kresba
  • ODBC
  • Oprávnění
  • Porty
  • Windows Seznamy Access Control (ACL)
  • Windows Communication Foundation (WCF)
  • Windows Kryptografick
  • Windows EventLog
  • Windows Management Instrumentation (WMI)
  • Windows Čítače výkonu
  • Registr Windows
  • Windows Ukládání do mezipaměti modulu Runtime
  • Služby systému Windows

Další informace najdete v tématu specifikace sady Compatibility Pack.

Začínáme

  1. Před přenosem se ujistěte, že se podíváte na proces přenosu.

  2. Při přenosu stávajícího kódu do rozhraní .NET nebo .NET Standard nainstalujte Microsoft. Windows. balíček NuGet kompatibility

    pokud chcete zůstat na Windows, budete mít vše nastavené.

  3. Pokud chcete spustit aplikaci .NET nebo knihovnu .NET Standard v systému Linux nebo macOS, použijte nástroj analyzátor kompatibility platformy k nalezení využití rozhraní API, která nefungují pro různé platformy.

  4. Buď odeberte použití těchto rozhraní API, nahraďte je alternativami pro různé platformy nebo je Zabezpečte 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 kanálu 9 Windows Pack kompatibility.

Viz také