Modernizuj po uaktualnieniu do platformy .NET z programu .NET Framework
W tym artykule dowiesz się więcej o różnych sposobach modernizacji aplikacji po uaktualnieniu jej z programu .NET Framework do platformy .NET. Użyj narzędzia .NET Upgrade Assistant, aby uaktualnić aplikację do .NET.
Brakujące interfejsy API
Podczas uaktualniania aplikacji .NET Framework najprawdopodobniej będziesz mieć pewne niezgodności. Dzieje się tak, ponieważ platforma .NET Framework jest technologią tylko dla systemu Windows, a platforma .NET to technologia międzyplatformowa. Nie wszystkie biblioteki działają. Na przykład platforma .NET nie udostępnia wbudowanych interfejsów API w celu uzyskania dostępu do rejestru systemu Windows, takiego jak .NET Framework. Obsługa rejestru systemu Windows jest zapewniana przez pakiet NuGet Microsoft.Win32.Registry
. Wiele bibliotek specyficznych dla programu .NET Framework zostało portowanych do platformy .NET lub .NET Standard i są hostowane w programie NuGet. Jeśli znajdziesz brakujące odwołanie w projekcie, wyszukaj w NuGet.
Pakiet zgodności systemu Windows
Jeśli po migracji masz pewne zależności od interfejsów API programu .NET Framework, które nie są obsługiwane w nowej wersji platformy .NET, możesz je znaleźć w pakiecie NuGet Microsoft.Windows.Compatibility
. Dodaje około 20 000 interfejsów API do projektu platformy .NET, co znacznie zwiększa zestaw interfejsów API dostępnych dla projektu. Te interfejsy API obejmują tylko te działające w systemie Windows, takie jak te związane z Windows Management Instrumentation (WMI) i dziennikiem zdarzeń systemu Windows. Aby uzyskać więcej informacji, zobacz Użyj Windows Compatibility Pack, aby przenieść kod do .NET.
Kontrolka przeglądarki internetowej
Projekty przeznaczone dla technologii klasycznej systemu Windows, takiej jak Windows Presentation Foundation lub Windows Forms, mogą zawierać kontrolkę przeglądarki internetowej. Dostarczona kontrolka przeglądarki internetowej została najprawdopodobniej zaprojektowana przed językiem HTML5 i innymi nowoczesnymi technologiami internetowymi i jest uważana za przestarzałą. Firma Microsoft publikuje Microsoft.Web.WebView2
pakiet NuGet jako nowoczesny zamiennik kontrolki przeglądarki internetowej.
App.config
Program .NET Framework używa pliku App.config do ładowania ustawień aplikacji, takich jak parametry połączenia i konfiguracja dostawcy dzienników. Nowoczesne platformy .NET używa pliku appsettings.json dla ustawień aplikacji. Wersja interfejsu wiersza polecenia Asystenta uaktualniania obsługuje konwertowanie plików App.config na appsettings.json, ale rozszerzenie programu Visual Studio nie.
Napiwek
Jeśli nie chcesz używać pliku appsettings.json, możesz dodać pakiet System.Configuration.ConfigurationManager
NuGet do aplikacji, a kod skompiluje i użyje pliku App.config.
Mimo że appsettings.json jest nowoczesnym sposobem przechowywania i pobierania ustawień i parametrów połączenia, aplikacja nadal ma kod, który używa pliku App.config. Po zmigrowaniu aplikacji pakiet NuGet System.Configuration.ConfigurationManager
został dodany do projektu, aby kod używający pliku App.config był nadal kompilowany.
W miarę uaktualniania bibliotek do platformy .NET modernizują się, obsługując appsettings.json zamiast App.config. Na przykład dostawcy rejestrowania w programie .NET Framework uaktualnionym dla platformy .NET 6+ nie używają już App.config dla ustawień. Dobrze jest stosować się do ich wskazówek, a także odejść od używania App.config.
Obsługa appsettings.json jest zapewniana przez pakiet NuGet Microsoft.Extensions.Configuration
.
Wykonaj następujące kroki, aby użyć pliku appsettings.json jako dostawcy konfiguracji:
Usuń pakiet NuGet lub bibliotekę
System.Configuration.ConfigurationManager
, jeśli jest używany w zaktualizowanej aplikacji.Dodaj pakiet
Microsoft.Extensions.Configuration.Json
NuGet.Utwórz plik o nazwie appsettings.json.
- Kliknij prawym przyciskiem myszy plik projektu w eksploratorze rozwiązań i wybierz pozycję Dodaj nowy element>.
- W polu wyszukiwania wprowadź
json
. - Wybierz szablon pliku konfiguracji JavaScript JSON i ustaw nazwę na appsettings.json.
- Naciśnij Dodaj, aby dodać nowy plik do projektu.
Ustaw plik appsettings.json, aby skopiować go do katalogu wyjściowego.
W Eksploratorze rozwiązań znajdź plik appsettings.json i ustaw następujące właściwości :
- Działanie kompilacji: zawartość
- kopiuj do folderu wyjściowego: Kopiuj zawsze
W kodzie uruchamiania aplikacji należy załadować plik ustawień.
Kod uruchamiania aplikacji różni się w zależności od typu projektu. Na przykład aplikacja WPF używa pliku
App.xaml.cs
do konfiguracji globalnej, a aplikacja Windows Forms używa metodyProgram.Main
do uruchamiania. Niezależnie od tego, należy wykonać dwie czynności podczas uruchamiania:- Utwórz element członkowski
internal static
(Friend Shared
w języku Visual Basic), do którego można uzyskać dostęp z dowolnego miejsca w aplikacji. - Podczas uruchamiania przypisz instancję do tego członka.
Poniższy przykład tworzy członek o nazwie
Config
, przypisuje do niego wystąpienie w metodzieMain
i ładuje łańcuch połączenia.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
- Utwórz element członkowski
Zaktualizuj pozostałą część kodu, aby używać nowych interfejsów API konfiguracji.
Usuń plik App.config z projektu.
Ostrożność
Upewnij się, że aplikacja działa poprawnie bez pliku App.config. Utwórz kopię zapasową pliku App.config za pomocą kontroli źródła lub kopiując plik w innym miejscu. Po dokładnym przetestowaniu aplikacji usuń plik App.config.