Migration to .net 6 from .net framework 4.8

Published Jul 30, 2022 | Updated May 19, 2023 | 0 comments

.net framework 4.8 winform 소스를 최신 LTS 인 .net 6 로 마이그레이션을 시도해 봅니다.
.net framework 4.8 winform 소스 코드는 아래 포스트를 참조하면 됩니다.

마이그레이션 방법은 MS 공식 문서를 참조했습니다.
참조 : Windows Forms 앱을 .NET 6으로 업그레이드 – .NET Core | Microsoft Docs

먼저 .NET Upgrade Assistant 를 설치해야 합니다.

C:\Repo\Github\MdiTabStripCS>dotnet tool install -g upgrade-assistant
다음 명령을 사용하여 도구를 호출할 수 있습니다. upgrade-assistant
'upgrade-assistant' 도구('0.4.336902' 버전)가 설치되었습니다.

업그레이드 하기 전에 분석 모드로 확인하는 기능도 있네요

C:\Repo\Github\MdiTabStripCS>upgrade-assistant analyze .\MdiTabStripCS.sln
-----------------------------------------------------------------------------------------------------------------
Microsoft .NET Upgrade Assistant v0.4.336902+3a2177acaa53d719e5da4ccde275f84ff18f0611

We are interested in your feedback! Please use the following link to open a survey: https://aka.ms/DotNetUASurvey
-----------------------------------------------------------------------------------------------------------------

[20:32:08 INF] Loaded 8 extensions

Telemetry
----------
The .NET tools collect usage data in order to help us improve your experience. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_UPGRADEASSISTANT_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about Upgrade Assistant telemetry: https://aka.ms/upgrade-assistant-telemetry
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

[20:32:18 INF] Using MSBuild from C:\Program Files\dotnet\sdk\6.0.302\
[20:32:18 INF] Using Visual Studio install from C:\Program Files\Microsoft Visual Studio\2022\Community [v17]
[20:32:33 INF] Writing output to C:\Repo\Github\MdiTabStripCS\AnalysisReport.sarif
[20:32:33 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[20:32:35 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.336902) needs to be added
[20:32:37 INF] Adding Microsoft.Windows.Compatibility 6.0.0 helps with speeding up the upgrade process for Windows-based APIs
[20:32:51 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[20:32:52 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.336902) needs to be added
[20:32:53 INF] Adding Microsoft.Windows.Compatibility 6.0.0 helps with speeding up the upgrade process for Windows-based APIs
[20:32:53 INF] Running analyzers on MdiTabStripCS
[20:33:00 INF] Identified 0 diagnostics in project MdiTabStripCS
[20:33:00 INF] Running analyzers on TestApp
[20:33:01 INF] Identified 0 diagnostics in project TestApp
[20:33:01 INF] Analysis Complete, the report is available at C:\Repo\Github\MdiTabStripCS\AnalysisReport.sarif

업그레이드 명령어로 업그레이드 하는 과정을 담은 스크립트 입니다.

C:\Repo\Github\MdiTabStripCS>upgrade-assistant upgrade .\MdiTabStripCS.sln
-----------------------------------------------------------------------------------------------------------------
Microsoft .NET Upgrade Assistant v0.4.336902+3a2177acaa53d719e5da4ccde275f84ff18f0611

We are interested in your feedback! Please use the following link to open a survey: https://aka.ms/DotNetUASurvey
-----------------------------------------------------------------------------------------------------------------

[20:37:35 INF] Loaded 8 extensions
[20:37:42 INF] Using MSBuild from C:\Program Files\dotnet\sdk\6.0.302\
[20:37:42 INF] Using Visual Studio install from C:\Program Files\Microsoft Visual Studio\2022\Community [v17]
[20:37:48 INF] Initializing upgrade step Select an entrypoint

Upgrade Steps

1. [Next step] Select an entrypoint
2. Select project to upgrade

Choose a command:
   1. Apply next step (Select an entrypoint)
   2. Skip next step (Select an entrypoint)
   3. See more step details
   4. Configure logging
   5. Exit
> 4
Choose log target:
   1. Console
   2. File
> 2
Choose your log level:
   1. Trace
   2. Debug
   3. Information
   4. Warning
   5. Error
   6. Critical
   7. None
> 3
Please press enter to continue...


Upgrade Steps

1. [Next step] Select an entrypoint
2. Select project to upgrade

Choose a command:
   1. Apply next step (Select an entrypoint)
   2. Skip next step (Select an entrypoint)
   3. See more step details
   4. Configure logging
   5. Exit
> 1
[20:39:05 INF] Applying upgrade step Select an entrypoint
Please select the project you run. We will then analyze the dependencies and identify the recommended order to upgrade projects.
   1. MdiTabStripCS
   2. TestApp
> 2
[20:39:11 INF] Upgrade step Select an entrypoint applied successfully
Please press enter to continue...

[20:39:16 INF] Initializing upgrade step Select project to upgrade

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Next step] Select project to upgrade
2. Finalize upgrade

Choose a command:
   1. Apply next step (Select project to upgrade)
   2. Skip next step (Select project to upgrade)
   3. See more step details
   4. Configure logging
   5. Exit
> 1
[20:39:23 INF] Applying upgrade step Select project to upgrade
Here is the recommended order to upgrade. Select enter to follow this list, or input the project you want to start with.
   1. MdiTabStripCS
   2. TestApp
> 2
[20:39:26 INF] Upgrade step Select project to upgrade applied successfully
Please press enter to continue...

[20:39:35 INF] Initializing upgrade step Back up project

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Next step] Back up project
2. Convert project file to SDK style
3. Clean up NuGet package references
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Back up project)
   2. Skip next step (Back up project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[19:57:14 INF] Applying upgrade step Back up project
Please choose a backup path
   1. Use default path [C:\Repo\Github\MdiTabStripCS.backup]
   2. Enter custom path
> 1
[19:57:31 INF] Backing up C:\Repo\Github\MdiTabStripCS\TestApp to C:\Repo\Github\MdiTabStripCS.backup\TestApp
[19:57:32 INF] Project backed up to C:\Repo\Github\MdiTabStripCS.backup\TestApp
[19:57:32 INF] Upgrade step Back up project applied successfully
Please press enter to continue...

[19:57:40 INF] Initializing upgrade step Convert project file to SDK style

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Next step] Convert project file to SDK style
3. Clean up NuGet package references
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Convert project file to SDK style)
   2. Skip next step (Convert project file to SDK style)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[19:59:00 INF] Applying upgrade step Convert project file to SDK style
[19:59:00 INF] Converting project file format with try-convert, version 0.4.336902+3799b6849a9457619660a355ca9111c050b0ef79
[19:59:00 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[19:59:03 INF] Converting project C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj to SDK style
[19:59:06 INF] Project file converted successfully! The project may require additional changes to build successfully against the new .NET target.
[19:59:10 INF] Upgrade step Convert project file to SDK style applied successfully
Please press enter to continue...

[19:59:13 INF] Initializing upgrade step Clean up NuGet package references
[19:59:13 INF] Initializing upgrade step Duplicate reference analyzer
[19:59:13 INF] No package updates needed
[19:59:13 INF] Initializing upgrade step Package map reference analyzer
[19:59:14 INF] No package updates needed
[19:59:14 INF] Initializing upgrade step Target compatibility reference analyzer
[19:59:14 INF] No package updates needed
[19:59:14 INF] Initializing upgrade step Upgrade assistant reference analyzer
[19:59:15 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.336902) needs to be added
[19:59:15 INF] Initializing upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
        1. [Next step] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers')
   2. Skip next step (Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers')
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[19:59:26 INF] Applying upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
[19:59:26 INF] Adding package reference: Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.4.336902
[19:59:26 INF] Upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers' applied successfully
[19:59:26 INF] Applying upgrade step Upgrade assistant reference analyzer
[19:59:27 INF] Upgrade step Upgrade assistant reference analyzer applied successfully
Please press enter to continue...

[19:59:34 INF] Initializing upgrade step Windows Compatibility Pack Analyzer
[19:59:34 INF] No package updates needed
[19:59:34 INF] Initializing upgrade step MyDotAnalyzer reference analyzer
[19:59:34 INF] No package updates needed
[19:59:34 INF] Initializing upgrade step Newtonsoft.Json reference analyzer
[19:59:35 INF] No package updates needed
[19:59:35 INF] Initializing upgrade step Windows App SDK package analysis
[19:59:35 INF] No package updates needed
[19:59:35 INF] Initializing upgrade step Transitive reference analyzer
[19:59:35 INF] No package updates needed
[19:59:35 INF] Applying upgrade step Clean up NuGet package references
[19:59:35 INF] Upgrade step Clean up NuGet package references applied successfully
[19:59:35 INF] Initializing upgrade step Update TFM
[19:59:35 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[19:59:35 INF] TFM needs updated to net6.0-windows

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Next step] Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Update TFM)
   2. Skip next step (Update TFM)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[19:59:41 INF] Applying upgrade step Update TFM
[19:59:41 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[19:59:46 INF] Updated TFM to net6.0-windows
[19:59:46 INF] Upgrade step Update TFM applied successfully
Please press enter to continue...

[19:59:48 INF] Initializing upgrade step Update NuGet Packages
[19:59:48 INF] Initializing upgrade step Duplicate reference analyzer
[19:59:48 INF] No package updates needed
[19:59:48 INF] Initializing upgrade step Package map reference analyzer
[19:59:48 INF] No package updates needed
[19:59:48 INF] Initializing upgrade step Target compatibility reference analyzer
[19:59:48 INF] No package updates needed
[19:59:48 INF] Initializing upgrade step Upgrade assistant reference analyzer
[19:59:48 INF] No package updates needed
[19:59:48 INF] Initializing upgrade step Windows Compatibility Pack Analyzer
[19:59:49 INF] Adding Microsoft.Windows.Compatibility 6.0.0 helps with speeding up the upgrade process for Windows-based APIs
[19:59:49 INF] Initializing upgrade step Add package 'Microsoft.Windows.Compatibility'

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
        1. [Next step] Add package 'Microsoft.Windows.Compatibility'
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Add package 'Microsoft.Windows.Compatibility')
   2. Skip next step (Add package 'Microsoft.Windows.Compatibility')
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[19:59:57 INF] Applying upgrade step Add package 'Microsoft.Windows.Compatibility'
[19:59:57 INF] Adding package reference: Microsoft.Windows.Compatibility, Version=6.0.0
[19:59:57 INF] Upgrade step Add package 'Microsoft.Windows.Compatibility' applied successfully
[19:59:57 INF] Applying upgrade step Windows Compatibility Pack Analyzer
[19:59:58 INF] Upgrade step Windows Compatibility Pack Analyzer applied successfully
Please press enter to continue...

[20:00:04 INF] Initializing upgrade step MyDotAnalyzer reference analyzer
[20:00:04 INF] No package updates needed
[20:00:04 INF] Initializing upgrade step Newtonsoft.Json reference analyzer
[20:00:04 INF] No package updates needed
[20:00:04 INF] Initializing upgrade step Windows App SDK package analysis
[20:00:05 INF] No package updates needed
[20:00:05 INF] Initializing upgrade step Transitive reference analyzer
[20:00:05 INF] No package updates needed
[20:00:05 INF] Applying upgrade step Update NuGet Packages
[20:00:05 INF] Upgrade step Update NuGet Packages applied successfully
[20:00:05 INF] Initializing upgrade step Add template files
[20:00:06 INF] 0 expected template items needed
[20:00:06 INF] Initializing upgrade step Update Windows Desktop Project
[20:00:10 WRN] Default font in Windows Forms has been changed from Microsoft Sans Serif to Seg Segoe UI, in order to change the default font use the API - Application.SetDefaultFont(Font font). For more details see here - https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0-preview-5/#application-wide-default-font.
[20:00:11 WRN] HighDpiMode needs to set in Main() instead of app.config or app.manifest - Application.SetHighDpiMode(HighDpiMode.<setting>). It is recommended to use SystemAware as the HighDpiMode option for better results.

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. Update Windows Desktop Project
    a. [Next step] Default Font API Alert
    b. Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Default Font API Alert)
   2. Skip next step (Default Font API Alert)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:00:29 INF] Applying upgrade step Default Font API Alert
[20:00:30 WRN] Default font in Windows Forms has been changed from Microsoft Sans Serif to Seg Segoe UI, in order to change the default font use the API - Application.SetDefaultFont(Font font). For more details see here - https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0-preview-5/#application-wide-default-font.
[20:00:30 INF] Upgrade step Default Font API Alert applied successfully
Please press enter to continue...


Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. Update Windows Desktop Project
    a. [Complete] Default Font API Alert
    b. [Next step] Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Winforms Source Updater)
   2. Skip next step (Winforms Source Updater)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:01:02 INF] Applying upgrade step Winforms Source Updater
[20:01:03 WRN] HighDpiMode needs to set in Main() instead of app.config or app.manifest - Application.SetHighDpiMode(HighDpiMode.<setting>). It is recommended to use SystemAware as the HighDpiMode option for better results.
[20:01:03 INF] Updated Program.cs file at C:\Repo\Github\MdiTabStripCS\TestApp\Program.cs with HighDPISetting set to SystemAware
[20:01:03 INF] Upgrade step Winforms Source Updater applied successfully
Please press enter to continue...


Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. [Next step] Update Windows Desktop Project
    a. [Complete] Default Font API Alert
    b. [Complete] Winforms Source Updater
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. Move to next project

Choose a command:
   1. Apply next step (Update Windows Desktop Project)
   2. Skip next step (Update Windows Desktop Project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:01:29 INF] Applying upgrade step Update Windows Desktop Project
[20:01:33 INF] Upgrade step Update Windows Desktop Project applied successfully
Please press enter to continue...

[20:01:43 INF] Initializing upgrade step Upgrade app config files
[20:01:44 INF] Found 0 app settings for upgrade:
[20:01:44 INF] Found 0 connection strings for upgrade:
[20:01:45 INF] Initializing upgrade step Update source code
[20:01:45 INF] Running analyzers on TestApp
[20:01:55 INF] Identified 0 diagnostics in project TestApp
[20:02:02 INF] Initializing upgrade step Move to next project

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. [Complete] Update Windows Desktop Project
    a. [Complete] Default Font API Alert
    b. [Complete] Winforms Source Updater
8. [Complete] Upgrade app config files
    a. [Complete] Convert Application Settings
    b. [Complete] Convert Connection Strings
    c. [Complete] Disable unsupported configuration sections
9. [Complete] Update source code
    a. [Complete] Apply fix for UA0002: Types should be upgraded
    b. [Complete] Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. [Complete] Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. [Complete] Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
10. [Next step] Move to next project

Choose a command:
   1. Apply next step (Move to next project)
   2. Skip next step (Move to next project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:02:22 INF] Applying upgrade step Move to next project
[20:02:22 INF] Upgrade step Move to next project applied successfully
Please press enter to continue...

[20:02:24 INF] Initializing upgrade step Select project to upgrade

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj

1. [Next step] Select project to upgrade
2. Finalize upgrade

Choose a command:
   1. Apply next step (Select project to upgrade)
   2. Skip next step (Select project to upgrade)
   3. See more step details
   4. Configure logging
   5. Exit
> 1
[20:03:01 INF] Applying upgrade step Select project to upgrade
[20:03:01 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
Here is the recommended order to upgrade. Select enter to follow this list, or input the project you want to start with.
   1. MdiTabStripCS
   [Completed] TestApp
> 1
[20:03:08 INF] Upgrade step Select project to upgrade applied successfully
Please press enter to continue...

[20:03:23 INF] Initializing upgrade step Back up project

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Next step] Back up project
2. Convert project file to SDK style
3. Clean up NuGet package references
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Back up project)
   2. Skip next step (Back up project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:03:25 INF] Applying upgrade step Back up project
Please choose a backup path
   1. Use default path [C:\Repo\Github\MdiTabStripCS.backup]
   2. Enter custom path
> 1
[20:03:26 INF] Backing up C:\Repo\Github\MdiTabStripCS\MdiTabStripCS to C:\Repo\Github\MdiTabStripCS.backup\MdiTabStripCS
[20:03:27 INF] Project backed up to C:\Repo\Github\MdiTabStripCS.backup\MdiTabStripCS
[20:03:27 INF] Upgrade step Back up project applied successfully
Please press enter to continue...

[20:03:28 INF] Initializing upgrade step Convert project file to SDK style

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Next step] Convert project file to SDK style
3. Clean up NuGet package references
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Convert project file to SDK style)
   2. Skip next step (Convert project file to SDK style)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:03:32 INF] Applying upgrade step Convert project file to SDK style
[20:03:32 INF] Converting project file format with try-convert, version 0.4.336902+3799b6849a9457619660a355ca9111c050b0ef79
[20:03:32 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[20:03:33 INF] Converting project C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj to SDK style
[20:03:34 INF] Project file converted successfully! The project may require additional changes to build successfully against the new .NET target.
[20:03:37 INF] Upgrade step Convert project file to SDK style applied successfully
Please press enter to continue...

[20:03:39 INF] Initializing upgrade step Clean up NuGet package references
[20:03:39 INF] Initializing upgrade step Duplicate reference analyzer
[20:03:39 INF] No package updates needed
[20:03:39 INF] Initializing upgrade step Package map reference analyzer
[20:03:39 INF] No package updates needed
[20:03:39 INF] Initializing upgrade step Target compatibility reference analyzer
[20:03:39 INF] No package updates needed
[20:03:39 INF] Initializing upgrade step Upgrade assistant reference analyzer
[20:03:40 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.336902) needs to be added
[20:03:40 INF] Initializing upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
        1. [Next step] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers')
   2. Skip next step (Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers')
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:03:43 INF] Applying upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
[20:03:43 INF] Adding package reference: Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.4.336902
[20:03:43 INF] Upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers' applied successfully
[20:03:43 INF] Applying upgrade step Upgrade assistant reference analyzer
[20:03:43 INF] Upgrade step Upgrade assistant reference analyzer applied successfully
Please press enter to continue...

[20:03:46 INF] Initializing upgrade step Windows Compatibility Pack Analyzer
[20:03:46 INF] No package updates needed
[20:03:46 INF] Initializing upgrade step MyDotAnalyzer reference analyzer
[20:03:46 INF] No package updates needed
[20:03:46 INF] Initializing upgrade step Newtonsoft.Json reference analyzer
[20:03:46 INF] No package updates needed
[20:03:46 INF] Initializing upgrade step Windows App SDK package analysis
[20:03:46 INF] No package updates needed
[20:03:46 INF] Initializing upgrade step Transitive reference analyzer
[20:03:46 INF] No package updates needed
[20:03:46 INF] Applying upgrade step Clean up NuGet package references
[20:03:46 INF] Upgrade step Clean up NuGet package references applied successfully
[20:03:46 INF] Initializing upgrade step Update TFM
[20:03:46 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[20:03:46 INF] TFM needs updated to net6.0-windows

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Next step] Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Update TFM)
   2. Skip next step (Update TFM)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:03:48 INF] Applying upgrade step Update TFM
[20:03:48 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[20:04:00 INF] Updated TFM to net6.0-windows
[20:04:00 INF] Upgrade step Update TFM applied successfully
Please press enter to continue...

[20:04:02 INF] Initializing upgrade step Update NuGet Packages
[20:04:02 INF] Initializing upgrade step Duplicate reference analyzer
[20:04:02 INF] No package updates needed
[20:04:02 INF] Initializing upgrade step Package map reference analyzer
[20:04:02 INF] No package updates needed
[20:04:02 INF] Initializing upgrade step Target compatibility reference analyzer
[20:04:02 INF] No package updates needed
[20:04:02 INF] Initializing upgrade step Upgrade assistant reference analyzer
[20:04:02 INF] No package updates needed
[20:04:02 INF] Initializing upgrade step Windows Compatibility Pack Analyzer
[20:04:03 INF] Adding Microsoft.Windows.Compatibility 6.0.0 helps with speeding up the upgrade process for Windows-based APIs
[20:04:03 INF] Initializing upgrade step Add package 'Microsoft.Windows.Compatibility'

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
        1. [Next step] Add package 'Microsoft.Windows.Compatibility'
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update Windows Desktop Project
    a. Default Font API Alert
    b. Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Add package 'Microsoft.Windows.Compatibility')
   2. Skip next step (Add package 'Microsoft.Windows.Compatibility')
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:04:05 INF] Applying upgrade step Add package 'Microsoft.Windows.Compatibility'
[20:04:05 INF] Adding package reference: Microsoft.Windows.Compatibility, Version=6.0.0
[20:04:05 INF] Upgrade step Add package 'Microsoft.Windows.Compatibility' applied successfully
[20:04:05 INF] Applying upgrade step Windows Compatibility Pack Analyzer
[20:04:06 INF] Upgrade step Windows Compatibility Pack Analyzer applied successfully
Please press enter to continue...

[20:04:10 INF] Initializing upgrade step MyDotAnalyzer reference analyzer
[20:04:10 INF] No package updates needed
[20:04:10 INF] Initializing upgrade step Newtonsoft.Json reference analyzer
[20:04:11 INF] No package updates needed
[20:04:11 INF] Initializing upgrade step Windows App SDK package analysis
[20:04:11 INF] No package updates needed
[20:04:11 INF] Initializing upgrade step Transitive reference analyzer
[20:04:11 INF] No package updates needed
[20:04:11 INF] Applying upgrade step Update NuGet Packages
[20:04:11 INF] Upgrade step Update NuGet Packages applied successfully
[20:04:12 INF] Initializing upgrade step Add template files
[20:04:12 INF] 0 expected template items needed
[20:04:13 INF] Initializing upgrade step Update Windows Desktop Project
[20:04:16 WRN] Default font in Windows Forms has been changed from Microsoft Sans Serif to Seg Segoe UI, in order to change the default font use the API - Application.SetDefaultFont(Font font). For more details see here - https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0-preview-5/#application-wide-default-font.

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. Update Windows Desktop Project
    a. [Next step] Default Font API Alert
    b. [Complete] Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Default Font API Alert)
   2. Skip next step (Default Font API Alert)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:04:30 INF] Applying upgrade step Default Font API Alert
[20:04:31 WRN] Default font in Windows Forms has been changed from Microsoft Sans Serif to Seg Segoe UI, in order to change the default font use the API - Application.SetDefaultFont(Font font). For more details see here - https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0-preview-5/#application-wide-default-font.
[20:04:31 INF] Upgrade step Default Font API Alert applied successfully
Please press enter to continue...


Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. [Next step] Update Windows Desktop Project
    a. [Complete] Default Font API Alert
    b. [Complete] Winforms Source Updater
8. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. Move to next project

Choose a command:
   1. Apply next step (Update Windows Desktop Project)
   2. Skip next step (Update Windows Desktop Project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 1
[20:04:56 INF] Applying upgrade step Update Windows Desktop Project
[20:04:59 INF] Upgrade step Update Windows Desktop Project applied successfully
Please press enter to continue...

[20:05:07 INF] Initializing upgrade step Update source code
[20:05:07 INF] Running analyzers on MdiTabStripCS
[20:05:18 INF] Identified 0 diagnostics in project MdiTabStripCS
[20:05:24 INF] Initializing upgrade step Move to next project

Upgrade Steps

Entrypoint: C:\Repo\Github\MdiTabStripCS\TestApp\TestApp.csproj
Current Project: C:\Repo\Github\MdiTabStripCS\MdiTabStripCS\MdiTabStripCS.csproj

1. [Complete] Back up project
2. [Complete] Convert project file to SDK style
3. [Complete] Clean up NuGet package references
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
        1. [Complete] Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'
    e. [Complete] Windows Compatibility Pack Analyzer
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
4. [Complete] Update TFM
5. [Complete] Update NuGet Packages
    a. [Complete] Duplicate reference analyzer
    b. [Complete] Package map reference analyzer
    c. [Complete] Target compatibility reference analyzer
    d. [Complete] Upgrade assistant reference analyzer
    e. [Complete] Windows Compatibility Pack Analyzer
        1. [Complete] Add package 'Microsoft.Windows.Compatibility'
    f. [Complete] MyDotAnalyzer reference analyzer
    g. [Complete] Newtonsoft.Json reference analyzer
    h. [Complete] Windows App SDK package analysis
    i. [Complete] Transitive reference analyzer
6. [Complete] Add template files
7. [Complete] Update Windows Desktop Project
    a. [Complete] Default Font API Alert
    b. [Complete] Winforms Source Updater
8. [Complete] Update source code
    a. [Complete] Apply fix for UA0002: Types should be upgraded
    b. [Complete] Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
    c. [Complete] Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces
    d. [Complete] Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces
9. [Next step] Move to next project

Choose a command:
   1. Apply next step (Move to next project)
   2. Skip next step (Move to next project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit
> 6
Please press enter to continue...

[20:05:53 INF] Saving upgrade progress file at C:\Repo\Github\MdiTabStripCS\.upgrade-assistant

업그레이드 후기

해당 소스코드는 유저컨트롤 프로젝트 1개와 유저컨트롤을 테스트하기 위한 윈폼 프로젝트 1개로 구성되어 있습니다.
스크립트 중간에 1번 의 선택 만으로 무리 없이 마이그레이션 되었습니다.
직접 확인해 보니 에러 1개도 없이 깔끔하게 완료되었습니다.

업그레이드 전후 스크린샷

Github source code

해당 소스코드는 다음 Github 에 반영되어 있습니다.


https://github.com/kkomzi7179/MdiTabStripCS
0 forks.
0 stars.
0 open issues.

Recent commits:

TAG INFORMATION

Learn more on this topic

Related Blog Posts

Join in the conversation

Leave a Comment

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

무료 온라인 전광판

전광판

텍스트를 입력하고 텍스트 효과 및 배경효과 를 변경해서 전체화면으로 표시할 수 있는 전광판 용도로 사용하실 수 있습니다. 각종 스포츠 및 공연 관람시 응원 용도로 사용이 가능합니다.

Carousel

여러개의 슬라이드를 추가하여 프레젠테이션 및 이미지 슬라이드 용도로 사용하실 수 있습니다. 브라우저가 포함된 IT 기기로 큰 모니터에 연결하여 매장 내 공지사항 및 메뉴소개를 이미지로 표시할 수 있습니다.

Pin It on Pinterest

Shares
Share This

Share This

Share this post with your friends!

Shares