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 platformy .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. Niektóre biblioteki nie są. 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 Microsoft.Win32.Registry
pakiet NuGet. 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 ciąg 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 Microsoft.Windows.Compatibility
pakiecie NuGet. 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ą interfejsy API tylko dla systemu Windows, takie jak te związane z instrumentacją zarządzania Windows (WMI) i Dziennik zdarzeń systemu Windows. Aby uzyskać więcej informacji, zobacz Use the Windows Compatibility Pack to port code to .NET (Używanie pakietu zgodności systemu Windows do przenoszenia kodu na platformę .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 zamiennik nowoczesnej kontrolki przeglądarki internetowej.
App.config
Program .NET Framework używa pliku App.config do ładowania ustawień aplikacji, takich jak parametry połączenia s 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ć System.Configuration.ConfigurationManager
pakiet NuGet do aplikacji, a kod skompiluje i użyje pliku App.config .
Mimo że appsettings.json jest nowoczesnym sposobem przechowywania i pobierania ustawień i parametry połączenia, aplikacja nadal ma kod, który używa pliku App.config. Po zmigrowaniu aplikacji pakiet NuGet został dodany do projektu, System.Configuration.ConfigurationManager
aby kod korzystający z 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ż pliku App.config dla ustawień. Warto postępować zgodnie z ich kierunkiem, a także odejść od korzystania z pliku App.config.
Obsługa appsettings.json jest zapewniana przez Microsoft.Extensions.Configuration
pakiet NuGet.
Wykonaj następujące kroki, aby użyć pliku appsettings.json jako dostawcy konfiguracji:
Usuń pakiet NuGet lub bibliotekę
System.Configuration.ConfigurationManager
, jeśli odwołuje się do uaktualnionej aplikacji.Microsoft.Extensions.Configuration.Json
Dodaj pakiet NuGet.Utwórz plik o nazwie appsettings.json.
- Kliknij prawym przyciskiem myszy plik projektu w oknie Eksplorator rozwiązań i wybierz polecenie Dodaj>nowy element....
- W polu wyszukiwania wpisz
json
. - Wybierz szablon Plik konfiguracji JSON języka JavaScript i ustaw wartość Nazwa na appsettings.json.
- Naciśnij przycisk Dodaj , aby dodać nowy plik do projektu.
Ustaw plik appsettings.json, aby skopiować go do katalogu wyjściowego.
W oknie Eksplorator rozwiązań znajdź plik appsettings.json i ustaw następujące właściwości:
- Akcja kompilacji: zawartość
- Kopiuj do katalogu wyjściowego: zawsze kopiuj
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
App.xaml.cs
pliku do konfiguracji globalnej, a aplikacja Windows Forms używa metody uruchamianiaProgram.Main
. 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 wystąpienie do tego elementu członkowskiego.
Poniższy przykład tworzy element członkowski o nazwie
Config
, przypisuje mu wystąpienie w metodzieMain
i ładuje parametry 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.
Uwaga
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 .