Modernizuj po uaktualnieniu do platformy .NET z programu .NET Framework
Artykuł
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.
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.
Porada
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.
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 uruchamiania Program.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 metodzie Main i ładuje parametry połączenia:
C#
using Microsoft.Extensions.Configuration;
internalclassProgram
{
internalstatic IConfiguration Config { get; privateset; }
privatestaticvoidMain(string[] args)
{
Config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
// Use the config file to get a connection stringstring? 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
Zaktualizuj pozostałą część kodu, aby używać nowych interfejsów API konfiguracji.
Usuń plik App.config z projektu.
Przestroga
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 .
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
W tym module dowiesz się, kiedy, dlaczego i jak zmodernizować aplikację platformy ASP.NET Framework, aby ASP.NET Core przy użyciu Asystenta uaktualniania.
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.