重新散布 Visual C++ 檔案

注意

您來到這裡是因為想要下載其中一個 Visual C++ 執行階段檔案嗎? 前往 最新支援的 Visual C++ 可再發行下載 頁面。

可轉散發檔案和授權

Visual C++ 執行時可再散布套件、合併模組及個別二進位檔的發行僅限於已授權的 Visual Studio 使用者,並受 Microsoft 軟體授權條款 規範。

當您部署應用程式時,您也必須部署必要的支援檔案。 如果 Microsoft 提供這些檔案,請確認你是否被允許重新分發。 你可以在 IDE 中找到 Visual Studio 授權條款的連結。 在About Microsoft Visual Studio對話框中,選擇授權條款連結。 您也可以從 Visual Studio 授權目錄下載相關的 Microsoft 軟體授權條款 和授權。

若要查看 Visual Studio 2022 Microsoft 軟體授權條款「Distributable Code」部分所引用的「REDIST 清單」,請參閱 Distributable code files for Microsoft Visual Studio 2022

若要查看在 Visual Studio 2019 的 Microsoft 軟體授權條款 中「Distributable Code」部分所參考的「REDIST 清單」,請參閱 Microsoft Visual Studio 2019 的分發程式碼檔案

欲查看 Visual Studio 2017 Microsoft 軟體授權條款中「Distributable Code」部分所引用的「REDIST 清單」,請參見《Microsoft Visual Studio 2017 可再發行程式碼檔案》。

若要查看 Visual Studio 2015 Microsoft 軟體授權條款「Distributable Code」部分所參照的「REDIST 清單」,請參閱 Microsoft Visual Studio 2015 的可發佈程式碼檔案

欲了解更多可再分發檔案的資訊,請參閱 「決定哪些動態連結函式庫(DLL)要重新分發 」及「 部署範例」。

尋找可轉散發檔案

要部署可重新發行檔案,可以使用 Visual Studio 安裝的可重新發行套件。 自 2017 年起的 Visual Studio 版本中,這些檔案分別命名為 vc_redist.arm64.exevc_redist.x64.exevc_redist.x86.exe。 在 Visual Studio 2015、2017 和 2019 中,它們也以名稱 vcredist_x86.exevcredist_x64.exe 和(僅限 2015 年)vcredist_arm.exe 提供。

尋找可轉散發檔案的最簡單方式是在開發人員命令提示字元中使用環境變數。 2022 Visual Studio,可再分發檔案位於 %VCINSTALLDIR%Redist\MSVC\v143 資料夾中。 在最新版本的 Visual Studio 2019 中,你可以在 %VCINSTALLDIR%Redist\MSVC\v142 資料夾中找到可再分發的檔案。 在 Visual Studio 2017 和 Visual Studio 2019 中,檔案也出現在 %VCToolsRedistDir%。 在 2015 Visual Studio,你可以在 %VCINSTALLDIR%redist\<locale> 中找到這些檔案,其中 <locale> 是可再分發套件的所在地。

在 Visual Studio 2022 和 2019 中,合併模組檔案是 Visual Studio 安裝程式中一個可選擇安裝元件的一部分,名稱為 Visual C++ <version> Redistributable merge modules。 合併模組預設以 Visual Studio 2017 和 Visual Studio 2015 的 C++ 安裝方式安裝。 當它們在 2022 Visual Studio 安裝時,你可以在 %VCINSTALLDIR%Redist\MSVC\v143\MergeModules 中找到可再分配的合併模組。

在最新版本的 Visual Studio 2019 中,可再分發的合併模組位於 %VCINSTALLDIR%Redist\MSVC\v142\MergeModules。 在2019 Visual Studio和2017 Visual Studio,它們也出現在%VCToolsRedistDir%MergeModules中。 在 Visual Studio 2015 中,它們位於 Program Files [(x86)]\Common Files\Merge Modules

安裝可再發佈套件

Visual C++ Redistributable 套件安裝並註冊所有 Visual C++ 函式庫。 如果您使用它,請在安裝應用程式之前,先在目標系統上將其執行為先決條件。 建議您使用這些套件進行部署,以便自動更新 Visual C++ 程式庫。 如需示範如何使用這些套件,請參見 「攻略:使用 Visual C++ Redistributable 套件部署 Visual C++ 應用程式」。

每個 Visual C++ 可轉散發套件都會檢查電腦上是否有較新的版本存在。 如果找到較新的版本,該套件就不會被安裝。 在 Visual Studio 2015 或更新版本中,可再散布套件會顯示錯誤訊息,表示設定失敗。 如果套件使用該 /quiet 旗標執行,則不會顯示錯誤訊息。 無論哪種情況,Microsoft 安裝程式都會記錄錯誤,並回傳錯誤結果給呼叫者。

在 Visual Studio 2015 及以後版本中,你可以透過檢查登錄檔來避免此錯誤,看看是否安裝了更新版本。 目前安裝的版本號儲存在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\{x86|x64|arm64} 鍵中。

Visual Studio 2015、2017、2019 和 2022 版本號為 14.0,因為最新的 Redistributable 與 2015 年起的版本二進位相容。 關鍵是arm64x86x64,這取決於平台上所安裝的vcredist版本。 (只有在使用 Regedit 查看 x64 平台上已安裝的 x86 套件版本時,才需要在子鍵下檢查 Wow6432Node 。)

版本號會儲存在REG_SZ字串值Version中,也包含在 、 MajorMinorBldRbld 和 值的集合REG_DWORD中。 為避免安裝時出錯,若目前安裝的可再分版套件版本較新,必須跳過安裝。

可再分發套件的命令列選項

Visual C++ 可轉散發套件支援數個命令列參數。 /? /h選項、或/help選項會顯示一個列出可用選項的對話框。 你可以指定 /install 安裝、 /repair 修復或 /uninstall 卸載 Redistributable。 /layout 選項會複製目前目錄中可轉散發套件的完整內容。

預設情況下,可轉散發套件會安裝其內容,並提示用戶提供資訊,以及是否在安裝之後重新啟動。 你可以透過以下選項來修改這個行為:

  • /passive:在安裝可再發行套件時會顯示進度條,但不需其他使用者互動。
  • /quiet: 不顯示使用者介面,也不需要任何使用者互動。 使用 /quiet 來進行完全無人值守的安裝。
  • /norestart: 會抑制任何重新啟動的嘗試。 根據預設,會在 %TEMP% 中建立記錄檔。
  • /log filename.txt 登入特定檔案。

如果您不是從以管理員身分執行的命令提示字元執行,則需要回應使用者帳戶控制提示,允許安裝程式以管理員權限執行。

這個範例指令會安裝適用於 x64 的可轉散發套件。 它顯示安裝進度,但除了重新啟動外,不需要使用者操作:

vc_redist.x64.exe /install /passive /norestart

安裝可轉散發合併套件

重要

Visual C++ 可轉散發檔案的合併模組 (.msm 檔案) 已被取代。 我們不建議你用它們來部署應用程式。 相反地,建議您集中部署 Visual C++ 可轉散發套件。 透過可再散布套件的集中部署,使 Microsoft 能夠獨立服務執行時函式庫檔案。 解除安裝你的應用程式不會影響其他同樣使用中央部署的應用程式。

當你使用可再分發套件進行集中部署時,你不需要負責追蹤和維護執行時函式庫。 否則,執行階段程式庫檔案的更新會要求您更新和重新部署 .msi 安裝程式。 您的應用程式可能容易受到 Bug 或安全性問題的影響,直到您這麼做為止。

可再散布合併模組必須包含在你用來部署應用程式的 Windows 安裝程式套件(或類似安裝套件)中。 欲了解更多資訊,請參閱「 使用合併模組再分配」。 舉例可參考 「攻略:使用設定專案部署 Visual C++ 應用程式」。

安裝個別可再發佈檔案

您也可以直接在應用程式本機資料夾中安裝可轉散發 DLL。 應用程式本機資料夾是包含應用程式可執行檔的資料夾。 基於維修考量,我們不建議您使用此安裝地點。

潛在的運行時錯誤

Windows如果找不到應用程式所需的可再分發 DLL,可能會顯示類似這樣的訊息:「此應用程式未能啟動,因為找不到 library.dll。 重新安裝應用程式可能可以解決這個問題。」

要解決這類錯誤,請確保你的應用程式安裝程式能正確編譯。 確認可再分配的函式庫是否正確部署在目標系統上。 欲了解更多資訊,請參閱 「了解 Visual C++ 應用程式的相依關係」。