通用 CRT 部署
從 Visual Studio .NET 到 Visual Studio 2013,C++ 編譯器和工具的每個主要版本都包含 Microsoft C 執行階段 (CRT) 程式庫的新獨立版本。 這些 CRT 獨立版本彼此無關,且在不同程度上互不相容。 例如,Visual Studio 2012 所使用的 CRT 程式庫是第 11 版,名為 msvcr110.dll,而 Visual Studio 2013 所使用的 CRT 是第 12 版,名為 msvcr120.dll。 從 Visual Studio 2015 開始,就不再如此。 Visual Studio 2015 和更新版本的 Visual Studio 全都使用一個通用 CRT。
通用CRT(UCRT) 是Microsoft Windows 作業系統元件。 它包含在 Windows 10 或更新版本中的作業系統中,以及 Windows Server 2016 或更新版本。 UCRT 可在仍在外延支援的舊版作業系統上使用 Windows Update。 支援通用CRT的本機部署,但有一些限制。
集中部署
集中安裝通用 CRT 的慣用方法是使用 Microsoft Windows Update。 通用 CRT 是所有支援的 Microsoft Windows 作業系統的建議更新 ;因此根據預設,大部分的電腦都會在定期更新程序期間安裝它。 通用CRT的初始版本KB2999226。 稍後在KB3118401中進行了各種錯誤修正的更新,而且有更多更新有進一步的錯誤修正和新功能。 如需最近的更新,請搜尋 support.microsoft.com
「通用 C 運行時間」或「通用CRT」。
並非所有的 Microsoft Windows 電腦都會使用 Windows Update 定期安裝更新,而且某些電腦可能不會安裝所有建議的更新。 為了支援使用這些計算機上使用 Visual Studio 2015 和更新版本所建置的應用程式C++工具組,有通用 CRT 可轉散發檔案可供離機散發。 這些可轉散發檔案可以從上述其中一個 KB 鏈接下載。 通用CRT可轉散發套件需要機器已更新為目前的ServicePack。 因此,比方說,Windows 7 的可轉散發套件只能安裝到 Windows 7 SP1,而不是 Windows 7 RTM。
通用 CRT 是C++連結庫的基本相依性。 C++ 可轉散發套件 (VCRedist) 會在尚未安裝通用 CRT (10.0.10240 版)的電腦上安裝初始版本。 此版本足以滿足C++連結庫相依性。 如果您的應用程式相依於較新版本的通用CRT,您必須使用Windows Update讓電腦完全處於最新狀態。 或者,明確安裝該版本的UCRT。 最好先使用 Windows Update 或 MSU 安裝通用 C 運行時間,再安裝 VCRedist。 此安裝順序有助於避免多次必要的重新啟動。
並非所有作業系統都有資格透過 Windows Update 取得最新的通用 C 運行時間。 在 Windows 10 或 Windows 11 上,集中部署的版本符合作業系統的版本。 若要進一步更新通用 C 執行時間,您必須更新作業系統。 針對 Windows Vista 到 Windows 8.1,最新的可用通用 C 運行時間是以 Windows 10 年度更新版(10.0.14393 版)為基礎。
本機部署
支援本機部署通用 CRT,但基於效能和安全性原因不建議使用。 本機部署的 DLL 會依計算機架構包含在 Windows SDK Windows Kits\10\Redist\ucrt\DLLs
的子目錄中。 所需的 DLL 包含 ucrtbase.dll
和一組名為 api-ms-win-*.dll
的 APISet 轉寄站 DLL。 每個作業系統上所需的 DLL 集合會有所不同。 強烈建議您在本機部署時包含所有 DLL。
本機部署有兩項要注意的限制:
在 Windows 10 和 Windows 11 上,系統目錄中的通用 CRT 一律會使用,即使應用程式包含通用 CRT 的應用程式本地副本也一樣。 即使本機復本較新,也是如此,因為通用 CRT 是 Windows 10 和更新版本的核心作業系統元件。
Windows 8 之前的 Windows 版本:如果通用 CRT 位於主要應用程式可執行文件目錄,則無法使用外掛程式在本機封裝。 在此案例中,APISet 轉寄站 DLL 無法成功解析
ucrtbase.dll
。 一些建議的替代解決方案包括:- 以靜態方式連結通用 CRT,
- 集中部署通用 CRT,或
- 將通用 CRT 檔案放在與應用程式相同的目錄中。
Microsoft Windows XP 上的部署
Visual Studio 2015 和 Visual Studio 2017 工具組會繼續支援在 windows XP Microsoft 開發軟體。 Windows XP 有適用於 Microsoft 的通用 CRT 版本。 Microsoft Windows XP 作業系統已不再是主流或延伸支援。 因此,將通用CRT集中部署至 Microsoft Windows XP 與其他作業系統不同。
在 Windows XP 上安裝 C++ 可轉散發套件 時,它會直接將通用 CRT 及其所有相依性安裝到系統目錄中。 它不會安裝或相依於任何 Windows Update。 可轉散發合併模組檔案 Microsoft_VC<version>_CRT_<target>.msm
會執行相同的動作。
在 Windows XP 上本機部署通用 CRT 的作業與其他支援作業系統上的相同。
重要
Visual Studio 2015、2017、2019 和 2022 的最新 C++ 可轉散發套件 已不再提供 Windows XP 的運行時間連結庫支援。 最後一個支援 Windows XP 的可轉散發套件是 16.7 版 (檔案版本 14.27.29114.0)。 如果您的 Windows XP 應用程式已部署或更新較新版本的可轉散發套件,則應用程式無法執行。 如需詳細資訊,以及取得支援 Windows XP 的可轉散發套件版本,請參閱為 Windows XP 設定程式。