共用方式為


從 Windows Forms .NET Framework 移轉至 .NET

本文說明如何使用 .NET Upgrade Assistant 將 Windows Forms 傳統型應用程式升級至 .NET。 Windows Forms 仍然是僅限 Windows 的架構,即使 .NET 是跨平台技術也一樣。

先決條件

評估

您應該先分析您的專案,再執行升級。 使用 .NET Upgrade Assistant 對專案執行程式代碼分析會產生您可以參考的報告,以識別潛在的移轉封鎖程式。

若要分析您的項目併產生報告,請以滑鼠右鍵按兩下 方案總管 中的方案檔,然後選取 [升級]。 如需執行分析的詳細資訊,請參閱 使用 .NET Upgrade Assistant 分析專案。

移轉依賴項

如果您要升級多重專案,請從沒有相依性的專案開始。 在比對遊戲範例中,MatchingGame 專案相依於 MatchingGame.Logic 程式庫,因此應先升級 MatchingGame.Logic

小提示

請務必確保備份您的程式碼,例如在版本控制系統或保存一個複本。

使用下列步驟升級 Visual Studio 中的專案:

  1. 以滑鼠右鍵按一下 [方案總管] 視窗中的 MatchingGame.Logic 專案,然後選取 [升級]

    此螢幕擷取畫面顯示 Visual Studio 中 .NET 升級小幫手的 [升級] 功能表項目。

    隨即開啟新的索引標籤,提示您選擇要執行的升級。

  2. 選取 [就地專案升級]

    此螢幕擷取畫面顯示 .NET 升級小幫手索引標籤。其中強調顯示 [就地專案升級] 選項。

  3. 接下來,選取目標框架。

    根據您要升級的專案類型,系統會顯示不同的選項。 .NET Framework 和 .NET 都可以使用 .NET Standard 2.0。 如果這個函式庫不依賴於像 Windows Forms 這樣的桌面技術,那麼選擇它將是非常好的,然而此專案確實是依賴這種技術的。

    選取 [.NET 9.0 ],然後選取 [ 下一步]。

    .NET 升級小幫手的螢幕快照。目標架構選項已開啟,且 .NET 8 以及 [下一步] 按鈕被反白顯示。

  4. 樹狀結構會顯示與專案相關的所有工件,例如程式碼檔案及程式庫。 您可以升級個別成品或整個專案,這是預設值。 選取 [升級選取項目] 以開始升級。

    .NET 升級助理的螢幕快照。[選取元件] 頁面已開啟,[升級選擇] 按鈕被醒目提示。

  5. 升級完成時,會顯示結果:

    此螢幕擷取畫面顯示 .NET 升級小幫手的升級結果索引標籤,其中顯示從專案移轉的項目。

    已升級帶有實心綠色圓圈的工件,略過空心綠色圓圈。 略過的項目表示升級小幫手沒有找到需要升級的任何內容。

現在已升級應用程式的支援程式庫,請升級主應用程式。

Visual Basic 專案的注意事項

目前,.NET 升級助手工具無法辨識在 .NET Framework 的 Visual Basic 範本所建立的設定檔中使用的 System.Configuration。 它也不支援 .NET Framework 專案中所使用的延伸模組,例如 MyMy.Computer。 這些延伸模組已在 .NET 中移除。 由於這兩個問題,使用 .NET Upgrade Assistant 進行移轉之後,Visual Basic 連結庫將不會編譯。

若要修正此問題,項目必須以 Windows 為目標並參考 Windows Forms。

  1. 移轉完成後,按兩下 [方案總管] 視窗中的 [MatchingGame.Logic] 專案。
  2. 找到 <Project>/<PropertyGroup> 項目。
  3. 在 XML 編輯器中,將的值 <TargetFramework>net9.0 變更為 net9.0-windows
  4. 將 新增 <UseWindowsForms>true</UseWindowsForms> 至 之後 <TargetFramework>的行。

項目設定看起來應該像下列代碼段:

<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 ...

移轉主要專案

升級所有支援程式庫之後,即可升級主應用程式專案。 使用範例應用程式時,只有一個要升級的程式庫專案,已在上一節中升級。

  1. 以滑鼠右鍵按一下 [方案總管] 視窗中的 MatchingGame 專案,然後選取 [升級]
  2. 選取 [就地專案升級]
  3. 選取 目標 Framework 的 .NET 9.0 ,然後選取 [ 下一步]。
  4. 保留所有選取項目,然後選取 升級選取項目

升級完成後,會顯示結果。 請注意,Windows Forms 專案是如何產生警告符號。 展開該項目,並顯示有關該步驟的詳細資訊:

此螢幕擷取畫面顯示 .NET 升級小幫手的升級結果索引標籤,其中顯示部分結果項目有警告符號。

請注意,專案升級元件提到預設字型已變更。 因為字型可能會影響控件版面配置,因此您必須檢查專案中的每個表單和自定義控件,以確保UI已正確排列。

生成乾淨建置

升級主要專案之後,請清理專案並加以編譯。

  1. 以滑鼠右鍵按一下 [方案總管] 視窗中的 MatchingGame 專案,然後選取 [清除]
  2. 以滑鼠右鍵按一下 [方案總管] 視窗中的 MatchingGame 專案,然後選取 [組建]

如果您的應用程式發生任何錯誤,您可以在 [錯誤清單] 視窗中找到這些錯誤,以及如何修正這些錯誤的建議。

Windows Forms 比對遊戲範例 專案現在已升級至 .NET 9。

升級后體驗

如果您要將應用程式從 .NET Framework 移植到 .NET,請檢閱 從 .NET Framework 升級到 .NET 之後的現代化一文。