在 Visual Studio 2022 中移植、移轉及升級專案
提示
觀看 Visual Studio 2022 上市活動的錄製內容以了解新功能、聆聽提示及技巧,以及下載免費的數位 Swag。
開發人員社群 | Visual Studio 2022 藍圖 | 系統需求 | 相容性 | 可散發程式碼 | 版本歷程記錄 | 授權條款 | 部落格 | 最新版已知問題 | Visual Studio Docs 的新功能
每個新版本的 Visual Studio 都會支援大多數類型的專案、檔案和其他資產。 您可以像往常一樣使用,但前提是您不依賴較新的功能。
我們嘗試保留舊版的回溯相容性,例如 Visual Studio 2019、Visual Studio 2017、Visual Studio 2015、Visual Studio 2013 和 Visual Studio 2012。 不過,有些專案類型的支援會隨時間而改變。 新版的 Visual Studio 可能完全不支援某些專案,或者需要更新專案,使其不再具有回溯相容性。
注意
如需移轉問題的目前狀態,請參閱 Visual Studio Developer Community。 若要深入了解哪些功能是 Visual Studio 版本特有的功能,請參閱版本資訊。
重要
某些專案類型需要特定的工作負載。 如果您未安裝工作負載,Visual Studio 會回報未知或不相容的專案類型。 在此情況下,請檢查 Visual Studio 安裝程式中的安裝選項,然後再試一次。 如需 Visual Studio 2022 中的專案支援相關詳細資訊,請參閱平台目標及相容性頁面。
專案類型
下列清單描述 Visual Studio 2022 對使用舊版建立之專案的支援。
如果您在此處沒有看到應列出的專案或檔案類型,請參閱本主題的 Visual Studio 2019 版本。 您也可以使用本頁最下方的 [提交並檢視>本頁的意見反應] 按鈕來提供專案的詳細資料。 (如果您使用匿名的「本頁對您有幫助嗎?」控制項,我們將無法回應您的意見反應。)
專案類型 | 支援 |
---|---|
.NET Core 專案 (xproj) | 以 Visual Studio 2015 建立的專案所使用的預覽工具,包含 xproj 專案檔。 Visual Studio 2017:xproj 格式必須移轉為 csproj 格式才能受到支援。 當您開啟 xproj 檔案時,系統會提示您將檔案移轉至 SDK 樣式的 csproj 格式。 (已建立 xproj 檔案的備份。)Visual Studio 2015 和更舊版本中不支援 SDK 樣式的 csproj 專案。 Visual Studio 2019:在 16.3 版和更新版本中,您無法載入或移轉 xproj 專案。 如需詳細資訊,請參閱將 .NET Core 專案移轉至 csproj 格式。 |
已啟用 Application Insights 的 ASP.NET Core Web 應用程式和 ASP.NET Core Web 應用程式 | 對每位 Visual Studio 使用者來說,資源資訊會儲存在每個使用者執行個體的登錄中。 當使用者未開啟任何專案,而要搜尋 Azure Application Insights 資料時,就會使用此資訊。 Visual Studio 2015 使用的登錄位置不同於 Visual Studio 2017、Visual Studio 2019 和 Visual Studio 2022,因此不會產生衝突。 在使用者建立 ASP.NET Web 應用程式、ASP.NET Core Web 應用程式或 ASP.NET Core Web 應用程式之後,資源就會存放在 .suo 檔案中。 只要 Visual Studio 支援在 Visual Studio 2015、Visual Studio 2017、Visual Studio 2019 或 Visual Studio 2022 中使用專案和方案,使用者即可在這些版本中開啟專案,資源資訊亦可用於每個版本。 使用者必須在每個產品上進行一次驗證。 例如,如果專案是以 Visual Studio 2017 建立並在 Visual Studio 2022 中開啟,則使用者也需要在 Visual Studio 2022 上進行驗證。 |
C#/Visual Basic Webform 或 Windows Form | 您可以在 Visual Studio 2022、Visual Studio 2019、Visual Studio 2017 和 Visual Studio 2015 中開啟專案。 |
自動程式化 UI 測試 | 自動化 UI 驅動功能測試的自動程式化 UI 測試在 Visual Studio 2019 中已淘汰。 Visual Studio 2019 將會是最後一個提供自動程式化 UI 測試的版本。 建議您使用 Selenium 測試 Web 應用程式,而使用 Appium 與 WinAppDriver 測試傳統型和 UWP 應用程式。 |
資料庫單元測試專案 (csproj、vbproj) | Visual Studio 2019 可以載入舊版的資料單元測試專案,但會使用 GAC 版本的相依性。 若要升級單元測試專案以使用最新的相依性,請以滑鼠右鍵按一下方案總管,並選取 [轉換成 SQL Server 單元測試專案...]。 |
F# | Visual Studio 2019 可以開啟在 Visual Studio 2013、Visual Studio 2015 和 Visual Studio 2017 中建立的專案。 與舊版 Visual Studio 範本的一個主要差異,就是在新專案中,FSharp.Core 版本現在一律是 NuGet 套件。 F# 預設會隨任何 .NET 工作負載安裝。 |
InstallShield MSI 安裝程式 |
在 Visual Studio 2010 中建立的安裝程式專案,可以透過 Visual Studio Installer Projects extension (Visual Studio 安裝程式專案延伸模組) 的協助在較新版本中開啟。 另請參閱 WiX Toolset Visual Studio 2017 Extension (WiX 工具組 Visual Studio 2017 延伸模組)。 Visual Studio 不再隨附 InstallShield 限量版。 如需 Visual Studio 2022 的可用性,請參閱 Revenera。 |
LightSwitch | Visual Studio 2022、Visual Studio 2019 或 Visual Studio 2017 不再支援 LightSwitch。 在 Visual Studio 2013 或 Visual Studio 2015 中,如果開啟使用 Visual Studio 2012 和更早版本所建立的專案,系統會將該專案升級,並僅可在 Visual Studio 2013 或 Visual Studio 2015 之後的版本中開啟。 |
負載測試 | Web 效能和負載測試功能在 Visual Studio 2019 中已淘汰。 Visual Studio 2019 將會是最後一個提供負載測試的版本。 請使用替代的負載測試工具,例如 Apache JMeter、Akamai CloudTest、Blazemeter。 |
Microsoft Azure Tools for Visual Studio | 若要開啟這些類型的專案,請先安裝 Azure SDK for .NET,然後再開啟專案。 如有必要,系統會更新您的專案。 |
Microsoft Test Manager | 從 Visual Studio 2019 開始,Visual Studio 不再隨附 Microsoft Test Manager 和 Feedback Client。 如有手動和探勘測試需求,請利用 Azure Test Plans (Azure DevOps 的一部分)。 |
模型檢視控制器架構 (ASP.NET MVC) | 針對 MVC 版本和 Visual Studio 的支援:
升級 MVC 版本:
|
建立模型 | 如果您允許 Visual Studio 自動更新專案,則可以在 Visual Studio 2015、Visual Studio 2013 或 Visual Studio 2012 中開啟專案。 模型專案的格式自 Visual Studio 2015 以後並未變更,因此您可以在這些版本中開啟及修改專案。 不過,Visual Studio 2017 和 Visual Studio 2019 的行為有下列差異:
|
MSI 安裝程式 (vdproj) | 請參閱此頁面的 InstallShield 一節。 |
Office 2007 VSTO | 需要針對 Visual Studio 2022 進行單向升級。 |
Office 2010 VSTO | 如果專案是以 .NET Framework 4 為目標,您可以在 Visual Studio 2010 SP1 及更新版本中開啟該專案。 所有其他專案則需要單向升級。 |
可攜式類別庫 (PCL) | 可攜式類別庫 (或 PCL) 現在不受支援。 Visual Studio 2019 仍然可加以開啟及建置,但無法建立新的 PCL 專案。 建議將 PCL 專案中的程式碼移轉至 .NET Standard 專案。 預設不再隨附 PCL 支援,但可透過 Visual Studio 的 [個別元件] 索引標籤取得。 |
Python 工作負載 | 對 Python Windows IoT Core 應用程式的支援已在 Visual Studio 2019 中移除。 因為在 Visual Studio 2022 中沒有對等項目,所以沒有適用於此類專案的自動移轉路徑。 您可以繼續使用 Visual Studio 2017。 |
Visual Studio R 工具 | 適用於 Visual Studio 的 R 工具已從 Visual Studio 2019 資料科學工作負載中移除。 您可以繼續使用 Visual Studio 2017 或 RStudio 等替代產品。 |
Service Fabric (sfproj) | 在 Visual Studio 2017 或 Visual Studio 2019 中建立的 Service Fabric 應用程式專案可在 Visual Studio 2022 中開啟,而不需變更。 您可以在 Visual Studio 2019 16.5 或更新版本中開啟在 Visual Studio 2022 中建立的 Service Fabric 應用程式專案,而不使用 [最佳化 ARM 部署的專案配置] 選項。 您可以在 Visual Studio 2019 16.10 或更新版本中開啟在 Visual Studio 2022 中建立的 Service Fabric 應用程式專案,並使用 [最佳化 ARM 部署的專案配置] 選項。 |
SharePoint 2010 | 當使用 Visual Studio 2022 開啟 SharePoint 方案專案時,便會將該專案升級至 SharePoint 2016 或 SharePoint 2019。 必須在 Visual Studio 中安裝「.NET 桌面開發」工作負載以進行升級。 如需如何升級 SharePoint 專案的詳細資訊,請參閱升級和更新 SharePoint。 |
SharePoint 2016 | 在 Office Developer Tools Preview 2 中建立的 SharePoint 增益集專案無法在 Visual Studio 2022 中開啟。 若要規避此限制,請將 csproj vbproj 檔案中的 MinimumVisualStudioVersion 更新為 12.0,並將 MinimumOfficeToolsVersion 更新為 12.2。 |
Silverlight | Visual Studio 2022 不支援 Silverlight 專案。 若要維護 Silverlight 應用程式,請繼續使用 Visual Studio 2015。 |
SQL - Redgate | Visual Studio 安裝程式不再隨附 Redgate 的 SQL Change Automation Core (之前稱為 ReadyRoll Core)、SQL Prompt Core 和 SQL Search。 您可以繼續使用 Visual Studio 2017 來取得這些功能。 在 Visual Studio 2019 中,您可以升級為 Redgate SQL Toolbelt 中所提供的付費 SQL Change Automation 和 SQL Prompt 產品。 |
SQL Server Reporting Services 和 SQL Server Analysis Services (SSRS、SSDT、SSAS、MSAS) | 這些專案類型的支援是透過 Visual Studio 組件庫中的兩個延伸模組來提供:Microsoft Analysis Services 專案和 Microsoft Reporting Services 專案。 SSDT 支援也隨附於 Visual Studio 2019 中的資料儲存和處理工作負載。 如需詳細資訊,請參閱下載並安裝 SQL Server Data Tools (SSDT) for Visual Studio 頁面。 |
SQL Server Integration Services (SSIS) | SQL Server Integration Services Projects 延伸模組已可正式用於 Visual Studio 2022。 從 SQL Server Integration Services Projects 2022 - Visual Studio Marketplace 下載,並參閱疑難排解指南以取得疑難排解指導。 |
測試視窗延伸模組 | 在 Visual Studio 2019 中,會移除一些先前標記為公用,但從未正式記載的測試視窗 API。 許多 API 已在 Visual Studio 2017 中標示為已淘汰,可為延伸模組維護人員提供初期警告。 據我們所知,很少有延伸模組相依於這些 API。 如需詳細資訊和更新,請檢視已淘汰之測試相關 API 的完整清單。 如果這會影響您的案例,請透過 Visual Studio 開發人員社群讓我們知道。 |
TypeScript | TypeScript SDK 在 Visual Studio 2022 中已被取代,且預設不會安裝在任何工作負載中。 編譯 TypeScript 的專案應該安裝 Microsoft.TypeScript.MSBuild NuGet 套件。 為了支援無法立即升級的專案,仍可使用 TypeScript SDK 做為 Visual Studio 安裝程式以及 Visual Studio Marketplace 中的選擇性元件。 |
Visual C++ | 您可以使用 Visual Studio 2022 來處理在 Visual Studio 更早版本 (自 Visual Studio 2010 起) 中建立的專案。 當您第一次開啟專案時,可以選擇要升級到最新的編譯器和工具組,或是繼續使用原本的編譯器和工具組。 如果您選擇繼續使用原本的編譯器和工具組,Visual Studio 2022 不會修改專案檔,且會使用 Visual Studio 更早所安裝工具組來建置您的專案。 保留原本的選項表示您仍然可以視需要在原始的 Visual Studio 版本中開啟該專案。 如需詳細資訊,請參閱在 Visual Studio 中使用原生多目標來建置舊專案。 |
Visual Studio 擴充性/VSIX | 系統會更新含 MinimumVersion 14.0 或以下版本的專案,以宣告 MinimumVersion 15.0;如此一來,即無法在舊版的 Visual Studio 中開啟專案。 若要允許在舊版本中開啟專案,請將 MinimumVersion 設定為 $(VisualStudioVersion) 。 另請參閱如何︰將擴充性專案移轉至 Visual Studio 2017。 |
Visual Studio Lab Management | 您可以使用 Microsoft Test Manager 或 Visual Studio 2010 SP1 和更新版本,開啟在這些版本中建立的環境。 不過,若是 Visual Studio 2010 SP1,Microsoft Test Manager 的版本必須符合 Team Foundation Server 的版本才能建立環境。 (重要事項:Team Foundation Server 或 TFS 現在稱為 Azure DevOps Server。) |
Visual Studio Tools for Apache Cordova | 對 Apache Cordova 的支援已在 Visual Studio 2019 中移除。 因為在 Visual Studio 2022 中沒有對等項目,所以沒有適用於此類專案的自動移轉路徑。 您可以使用適用於 Visual Studio 的 Cordova 工具延伸模組 (提供最新版 Cordova 的支援),或繼續使用 Visual Studio 2017。 |
Web 部署 (wdproj) | 對 Web 部署專案的支援已在 Visual Studio 2012 中移除,但加入發行設定檔支援。 因為在 Visual Studio 2022 中沒有對等項目,所以沒有適用於此類專案的自動移轉路徑。 請改為在文字編輯器中開啟該 wdproj 檔案,然後將任何自訂項目複製並貼上到 pubxml (發行設定檔) 檔案中,如 StackOverflow \(英文\) 上所述。 |
Windows Communication Foundation 與 Windows Workflow Foundation | 您可以在 Visual Studio 2022、Visual Studio 2019、Visual Studio 2017、Visual Studio 2015、Visual Studio 2013 和 Visual Studio 2012。 |
Windows Presentation Foundation | 您可以在 Visual Studio 2022、Visual Studio 2019、Visual Studio 2017、Visual Studio 2013、Visual Studio 2012 和 Visual Studio 2010 SP1 中開啟這類專案。 |
Windows Phone 應用程式 | Visual Studio 2022 不支援 Windows Phone 專案。 若要保留 Windows Phone 8.x 應用程式,請使用 Visual Studio 2015。 若要維護 Windows Phone 7.x 專案,請使用 Visual Studio 2012。 |
Windows 市集應用程式 | Visual Studio 2022 不支援 JavaScript 通用 Windows 專案。 若要保留這些專案,請使用 Visual Studio 2017。 Windows 10 Fall Creators Update (組建 16299) 之前的 Windows 10 SDK 已從 Visual Studio 2019 安裝工具中移除。 您可以手動下載舊版 SDK,或將專案目標重定為使用新版 SDK。 不支援使用 project.json 的通用 Windows 專案。 建議升級這些專案以使用套件參考。 或者,在 project.json 檔案中新增 Microsoft.NET.Test.Sdk 16.0.0.0 版的參考。 Visual Studio 2022 不支援 Windows Store 8.1 和 8.0 專案。 若要維護這些應用程式,請繼續使用 Visual Studio 2015。 |
Xamarin | 從 Visual Studio 2022 17.11 開始不再支援 Xamarin。 而是將 Xamarin 專案升級為 .NET MAUI。 |
移轉專案
雖然我們嘗試維持與舊版的相容性,但可能會有一些變更與舊版不相容。 發生這種情況時,較新版本的 Visual Studio 將不會載入專案或提供移轉路徑。 您可能必須在舊版 Visual Studio 中維護該專案。 如需 Visual Studio 2022 中所支援專案類型的相關詳細資訊,請參閱平台目標及相容性頁面。
在其他情況下,較新版本的 Visual Studio 可以開啟專案,但必須以可能會使其與舊版不相容的方式更新或移轉專案。 Visual Studio 會使用下列準則,來判斷是否必須進行這類移轉:
與目標版本平台的相容性,回溯到 Visual Studio 2013 RTM。
設計階段資產與舊版 Visual Studio 的相容性。 (也就是 Visual Studio 2022、Visual Studio 2019、Visual Studio 2017、Visual Studio 2015 RTM 與 Update 3、Visual Studio 2013 RTM 與 Update 5、Visual Studio 2012 Update 4 和 Visual Studio 2010 SP1 的不同通道。)Visual Studio 2022 的目的在於讓已淘汰的設計階段資產正常失敗而不會損毀,使得舊版仍然可以開啟專案。
新的設計階段資產是否會中斷與回溯到 Visual Studio 2013 RTM 和 Update 5 的舊版相容性。
擁有專案類型的工程小組會查看這些準則,並在涉及支援、相容性和移轉處進行呼叫。 同樣地,我們會嘗試維持 Visual Studio 版本之間的相容性,以便在某個版本的 Visual Studio 中建立和修改專案時,該專案只會在其他版本中使用。
有時候,無法達到相容性。 然後,Visual Studio 會開啟升級精靈,以進行必要的單向變更。 這些單向變更可能包含變更專案檔中的 ToolsVersion
屬性,此屬性確切表示哪個版本的 MSBuild 可以將專案的原始程式碼變成您需要的可執行且可部署成品。
使專案與舊版 Visual Studio 不相容的項目不是 Visual Studio 版本,而是 ToolsVersion
所決定的 MSBuild 版本。 如果您的 Visual Studio 版本包含的 MSBuild 工具鏈符合專案中的 ToolsVersion
,Visual Studio 就可以叫用該工具鏈來建置專案。
為了保持與較舊版本所建立專案的最大相容性,Visual Studio 2022 包含必要的 MSBuild 工具鏈來支援 ToolsVersion
15、14、12 和 4。 使用其中任一 ToolsVersion
值的專案應該都能成功建置。 (同樣地,取決於 Visual Studio 2022 是否完全支援該專案類型,如平台目標及相容性所述。)
您可能會想要手動更新專案或將專案移轉至較新的 ToolsVersion
值。 不需要進行這類變更,且可能會產生許多錯誤和警告,您必須修正這些問題才能重新建置專案。 此外,如果 Visual Studio 未來不支援特定 ToolsVersion
,則專案會在開啟專案時觸發專案移轉程序,因為其 ToolsVersion
值必須進行變更。
前期 MSBuild 專案
警告
前期 MSBuild .NET 專案 (也就是使用早於 MSBuild 的 Visual Studio 版本所建立的 .NET 專案) 只有在您使用 Visual Studio 版本 (最高為 Visual Studio 17.12 版) 升級時才能轉換。 使用 Visual Studio 17.13 版或更新版本時,專案將無法轉換。 若要轉換這類專案,目前可能仍需要使用 Visual Studio 17.12,並儲存轉換的結果。 其他專案格式的轉換不受影響,即使前期 MSBuild 專案檔案繼續運作,先前 Visual Studio 版本仍會繼續轉換。 不過,建議您儲存轉換的結果,因為 Visual Studio 的未來版本或舊版 Visual Studio 的未來更新 (包括 2017 和 2019) 可能會對升級功能有其他的限制。