.NET Framework アプリをアップグレードする際に、おそらく非互換性がいくつか見つかります。 これは、.NET Framework は Windows 専用のテクノロジであり、.NET はクロスプラットフォーム テクノロジであるためです。 一部のライブラリはそうではありません。 たとえば、.NET には、.NET Framework のように、Windows レジストリにアクセスするための追加設定なしですぐに使用できる API がありません。 Windows レジストリのサポートは、Microsoft.Win32.Registry NuGet パッケージによって提供されます。 .NET Framework 固有のライブラリの多くは.NET または .NET Standard に移植されており、NuGet でホストされています。 プロジェクトに見つからない参照がある場合は、NuGet を検索してください。
Windows 互換機能パック
移行後に、新しいバージョンの .NET でサポートされていない .NET Framework API の依存関係がいくつかある場合は、Microsoft.Windows.Compatibility NuGet パッケージでそれらが見つかることがあります。 これにより .NET プロジェクトに約 20,000 個の API が追加され、プロジェクトで使用できる API セットが大幅に増加します。 これらの API には、Windows Management Instrumentation (WMI) や Windows EventLog に関連するものなど、Windows 専用の API が含まれます。 詳細については、「Windows 互換機能パックを使用してコードを .NET に移植する」を参照してください
Web ブラウザー コントロール
Windows Presentation Foundation や Windows フォームなど、Windows デスクトップ テクノロジを対象とするプロジェクトには、Web ブラウザー コントロールが含まれる場合があります。 提供される Web ブラウザー コントロールは、HTML5 やその他の最新の Web テクノロジより前に設計された可能性が高く、古いと見なされます。 Microsoft では、Web ブラウザー コントロールに代わる最新のものとして、Microsoft.Web.WebView2NuGet パッケージを発行しています。
using Microsoft.Extensions.Configuration;
internal class Program
{
internal static IConfiguration Config { get; private set; }
private static void Main(string[] args)
{
Config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
// Use the config file to get a connection string
string? myConnectionString = Config.GetConnectionString("database");
// Run the rest of your app
}
}
Imports Microsoft.Extensions.Configuration
Module Program
Private _config As IConfiguration
' Shared not required since Program is a Module
Friend Property Config As IConfiguration
Get
Return _config
End Get
Private Set(value As IConfiguration)
_config = value
End Set
End Property
Sub Main(args As String())
Config = New ConfigurationBuilder() _
.AddJsonFile("appsettings.json") _
.Build()
' Use the config file to get a connection string
Dim myConnectionString As String = Config.GetConnectionString("database")
' Run the rest of your app
End Sub
End Module