組織專案以同時支援 .NET Framework 及 .NET

您可以建立同時針對 .NET Framework 與 .NET 編譯的解決方案。 此文章涵蓋數個專案組織選項,可協助您達成此目標。 以下是當您決定如何使用 .NET 設定專案配置時要考量的一些典型案例。 此清單可能未涵蓋您想要的所有內容。

  • 將現有專案和 .NET 專案合併成單一專案

    優點:

    • 透過編譯單一專案而非多個專案 (每個都以不同的 .NET Framework 版本或平台為目標) 來簡化建置流程。
    • 由於您必須管理單一專案檔,因此,請簡化多目標專案的來源檔案管理。 新增或移除來源檔案時,替代方案需要您手動同步處理這些檔案與您的其他專案。
    • 輕鬆產生 NuGet 套件以供取用。
    • 讓您能夠使用編譯器指示詞來撰寫特定 .NET Framework 版本的程式碼。

    缺點

    • 要求開發人員使用 Visual Studio 2019 或更新版本來開啟現有專案。 若要支援舊版的 Visual Studio,將專案檔放在不同的資料夾是較好的選擇。
  • 將所有專案分開 (部分機器翻譯)

    優點

    • 針對可能沒有 Visual Studio 2019 或更新版本的開發人員與參與者,支援對現有專案進行開發。
    • 降低在現有專案中產生新錯誤 (Bug) 的可能性,因為那些專案中不需要任何程式碼變換。

請考慮這個範例 GitHub 存放庫 (英文)。 下圖顯示此存放庫的配置方式:

Existing project structure diagram

下列各節描述根據範例存放庫新增對 .NET 支援的數種方式。

使用多目標 .NET 專案取代現有專案

重新組織存放庫,以移除任何現有的 *.csproj 檔案,並建立以多個架構為目標的單一 *.csproj 檔案。 這是個不錯的選擇,因為單一專案能夠針對不同的架構進行編譯。 它也可以處理個別目標架構的不同編譯選項及相依性。

project that targets multiple frameworks diagram

如需範例程式碼,請參閱 GitHub (英文)。

要注意的變更如下︰

  • 以新的 .NET *.csproj 取代 packages.config*.csproj。 NuGet 套件是使用 <PackageReference> ItemGroup 所指定。

保留現有專案並建立 .NET 專案

如果現有專案會以較舊的架構為目標,您可以讓這些專案保持不變,並使用 .NET 專案以未來架構為目標。

.NET project with existing projects in a different folder diagram

如需範例程式碼,請參閱 GitHub (英文)。

.NET 與現有專案會保存於不同資料夾中。 將專案保存於個別資料夾中,可避免強迫您使用 Visual Studio 2019 或更新版本。 您可以建立不同的解決方案只開啟舊的專案。

另請參閱