如何將Windows Forms傳統型應用程式升級至 .NET 7

本文說明如何將Windows Forms傳統型應用程式升級至 .NET 7。 即使Windows Forms在 .NET 上執行,但跨平臺技術Windows Forms仍是僅限 Windows 的架構。 您可以使用 .NET 升級小幫手升級下列Windows Forms相關的專案類型:

  • Windows Forms專案
  • 控制程式庫
  • .NET 程式庫

您也應該檢閱從 .NET Framework 移植到 .NET指南中的資訊。

警告

請勿升級 Visual Basic Windows Forms 專案。 延伸模組似乎有錯誤。 修正 Bug 時,將會更新本文。

必要條件

示範應用程式

本文是以升級Windows Forms比對遊戲範例專案的內容所撰寫,您可以從.NET 範例 GitHub 存放庫下載。

起始升級

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

提示

請務必備份程式碼,例如在原始檔控制或複本中。

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

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

    Visual Studio 中的 .NET 升級小幫手 [升級] 功能表項目。

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

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

  3. 接下來,選取目標 Framework。 根據您要升級的專案類型,您會看到不同的選項。 如果程式庫不依賴 Windows Froms 之類的桌面技術,而且可由.NET Framework專案和 .NET 專案使用,則 .NET Standard 2.0是不錯的選擇。 不過,最新的 .NET 版本透過 .NET Standard 提供許多語言和編譯器改善。

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

    .NET 升級小幫手的目標架構決策索引標籤。

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

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

    .NET 升級小幫手的升級結果索引標籤,其中已略過 13 個專案的兩個專案。

    已升級具有實心綠色圓圈的成品,而略過空白綠色圓圈。 略過的成品表示升級助理找不到任何升級專案。

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

升級應用程式

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

  1. 以滑鼠右鍵按一下[方案總管] 視窗中的[MatchingGame] 專案,然後選取 [升級]:
  2. 選取 [就地專案升級 ] 作為升級模式。
  3. 針對目標 Framework 選取 .NET 7.0 ,然後選取 [ 下一步]。
  4. 保留所有選取的成品,然後選取 [ 升級] 選取專案

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

.NET Upgrade Assistant 的升級結果索引標籤,其中顯示某些結果專案有警告符號。

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

產生全新組建

升級專案之後,請清除並加以編譯。

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

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

結論

Windows Forms比對遊戲範例專案現在已升級至 .NET 7。 當您移轉自己的專案時,您的結果將會不同。 請務必花點時間檢閱從 .NET Framework 移植到 .NET指南,以及從 .NET Framework 升級至 .NET 之後現代化一文。