Delen via


Migreren van Windows Forms .NET Framework naar .NET

In dit artikel wordt beschreven hoe u een Windows Forms-bureaublad-app bijwerkt naar .NET met behulp van .NET Upgrade Assistant. Windows Forms blijft een windows-framework, ook al is .NET een platformoverschrijdende technologie.

Vereiste voorwaarden

Beoordeling

U moet uw projecten analyseren voordat u een upgrade uitvoert. Als u codeanalyse uitvoert op uw projecten met .NET Upgrade Assistant, wordt een rapport gegenereerd waarnaar u kunt verwijzen om potentiële migratieblokkeringen te identificeren.

Als u uw projecten wilt analyseren en een rapport wilt genereren, klikt u met de rechtermuisknop op het oplossingsbestand in Solution Explorer en selecteert u Upgraden. Zie Projecten analyseren met .NET Upgrade Assistant voor meer informatie over het uitvoeren van een analyse.

Afhankelijkheden migreren

Als u meerdere projecten bijwerken, begint u met projecten die geen afhankelijkheden hebben. In het voorbeeld van het Matching Game is het MatchingGame-project afhankelijk van de bibliotheek MatchingGame.Logic , zodat MatchingGame.Logic eerst moet worden bijgewerkt.

Aanbeveling

Zorg ervoor dat u een back-up van uw code hebt, zoals in broncodebeheer of een kopie.

Gebruik de volgende stappen om een project bij te werken in Visual Studio:

  1. Klik met de rechtermuisknop op het project MatchingGame.Logic in het venster Solution Explorer en selecteer Upgraden:

    Een schermopname van het menu-item Upgrade van de .NET-upgradeassistent in Visual Studio.

    Er wordt een nieuw tabblad geopend waarin u wordt gevraagd om te kiezen welke upgrade u wilt uitvoeren.

  2. Selecteer In-place project-upgrade.

    Een screenshot van het tabblad .NET Upgrade Assistant. De optie 'In-place project-upgrade' is gemarkeerd.

  3. Selecteer vervolgens het doelframework.

    Op basis van het type project dat u wilt upgraden, krijgt u verschillende opties te zien. .NET Standard 2.0 kan worden gebruikt door zowel .NET Framework als .NET. Dit is een goede keuze als de bibliotheek niet afhankelijk is van een bureaubladtechnologie zoals Windows Forms, wat dit project doet.

    Selecteer .NET 9.0 en selecteer Volgende.

    Een schermopname van de .NET-upgradeassistent. De prompt van het doelframework is geopend en .NET 8 wordt samen met de knop Volgende gemarkeerd.

  4. Er wordt een structuur weergegeven met alle artefacten die betrekking hebben op het project, zoals codebestanden en bibliotheken. U kunt afzonderlijke artefacten of het hele project upgraden. Dit is de standaardinstelling. Selecteer Upgradeselectie om de upgrade te starten.

    Een schermopname van de .NET-upgradeassistent. De pagina Onderdelen selecteren is geopend met de knop Upgradeselectie gemarkeerd.

  5. Wanneer de upgrade is voltooid, worden de resultaten weergegeven:

    Een schermopname van het tabblad Upgraderesultaten van de .NET-upgradeassistent met de gemigreerde items uit het project.

    Artefacten met een ononderbroken groene cirkel zijn bijgewerkt terwijl lege groene cirkels zijn overgeslagen. Overgeslagen artefacten betekenen dat de upgradeassistent niets heeft gevonden om te upgraden.

Nu de ondersteunende bibliotheek van de app is bijgewerkt, voert u een upgrade uit van de hoofd-app.

Notities voor Visual Basic-projecten

Momenteel herkent de .NET Upgrade Assistant het gebruik van System.Configuration in het instellingenbestand, dat is aangemaakt door de Visual Basic-sjablonen op .NET Framework, niet. Het respecteert ook niet het gebruik van de My extensies die worden gebruikt in .NET Framework-projecten, zoals My.Computer en My.User. Deze extensies zijn verwijderd in .NET. Vanwege deze twee problemen wordt een Visual Basic-bibliotheek niet gecompileerd nadat deze is gemigreerd met .NET Upgrade Assistant.

Om dit probleem op te lossen, moet het project gericht zijn op Windows en verwijzen naar Windows Forms.

  1. Nadat de migratie is voltooid, dubbelklikt u op het project MatchingGame.Logic in het venster Solution Explorer .
  2. Zoek het element <Project>/<PropertyGroup>.
  3. Wijzig in de XML-editor de waarde van <TargetFramework> van net9.0 in net9.0-windows.
  4. Voeg <UseWindowsForms>true</UseWindowsForms> toe aan de regel na <TargetFramework>.

De projectinstellingen moeten eruitzien als het volgende fragment:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>
    <MyType>Windows</MyType>

    ... other settings removed for brevity ...

Het hoofdproject migreren

Zodra alle ondersteunende bibliotheken zijn bijgewerkt, kan het hoofd-app-project worden bijgewerkt. Met de voorbeeld-app is er slechts één bibliotheekproject om te upgraden, die in de vorige sectie is bijgewerkt.

  1. Klik met de rechtermuisknop op het Project MatchingGame in het venster Solution Explorer en selecteer Upgraden:
  2. Selecteer In-place project-upgrade.
  3. Selecteer .NET 9.0 voor het doelframework en selecteer Volgende.
  4. Laat alle artefacten geselecteerd blijven en selecteer Selectie upgraden.

Nadat de upgrade is voltooid, worden de resultaten weergegeven. U ziet hoe het Windows Forms-project een waarschuwingssymbool heeft. Vouw dat item uit en er wordt meer informatie over die stap weergegeven:

Een schermopname van het tabblad Upgraderesultaten van de .NET-upgradeassistent, met enkele resultatenitems met waarschuwingssymbolen.

U ziet dat het projectupgradeonderdeel vermeldt dat het standaardlettertype is gewijzigd. Omdat het lettertype van invloed kan zijn op de indeling van het besturingselement, moet u elk formulier en aangepast besturingselement in uw project controleren om ervoor te zorgen dat de gebruikersinterface correct is gerangschikt.

Een schone versie compileren

Nadat uw hoofdproject is bijgewerkt, schoont u het op en compileert u het.

  1. Klik met de rechtermuisknop op het Project MatchingGame in het venster Solution Explorer en selecteer Opschonen.
  2. Klik met de rechtermuisknop op het project MatchingGame in het venster Solution Explorer en selecteer Build.

Als er fouten zijn opgetreden in uw toepassing, kunt u deze vinden in het venster Foutenlijst met een aanbeveling om deze op te lossen.

Het Windows Forms Matching Game Sample-project is nu bijgewerkt naar .NET 9.

Ervaring na een upgrade

Als u een app van .NET Framework naar .NET overzet, raadpleegt u het artikel Moderniseer na een upgrade naar .NET vanaf .NET Framework.

  • Overzetten van .NET Framework naar .NET.

    De handleiding voor overzetten biedt een overzicht van wat u moet overwegen bij het overzetten van uw code van .NET Framework naar .NET. De complexiteit van uw projecten bepaalt hoeveel werk u moet doen na de eerste migratie van de projectbestanden.

  • Moderniseren na een upgrade naar .NET vanuit .NET Framework.

    De wereld van .NET is veel veranderd sinds .NET Framework. Deze koppeling bevat informatie over het moderniseren van uw app nadat u een upgrade hebt uitgevoerd.