Share via


轉散發 Visual C++ 檔案

更新:2007 年 11 月

當您使用 Visual C++ 開發應用程式時,您得到的優勢是,可以在一部不僅是好的開發環境的電腦上工作,它同時也是一個可執行及測試應用程式的方便環境。但是,想要將應用程式部署到其他電腦時,您必須轉散發支援目標系統上的應用程式所需的所有檔案。如需您可能要使用應用程式轉散發哪些檔案的詳細資訊,請參閱部署範例決定要轉散發哪些 DLL

只有某些 Visual C++ 檔案才可以與應用程式一起轉散發。請參閱 Visual Studio 2005 的 Microsoft 軟體授權條款和 Redist.txt 檔,了解哪些檔案可以與應用程式一起轉散發。您可以在第一片 Visual C++ 2008 產品光碟片或 DVD 上的 \Setup 目錄中找到 EULA.txt,而 Redist.txt 則位於第二片光碟片或 DVD 的 Program Files\Microsoft Visual Studio 2005 目錄中。

可以使用下列方式來轉散發 Visual C++ 檔案:使用所提供的可轉散發合併模組、使用 Visual C++ 可轉散發套件,或是藉由將特定的 Visual C++ 組件 (Assembly) 部署為應用程式本機資料夾中的私用並存組件。

注意事項:

「應用程式本機資料夾」(Application Local Folder) 是包含應用程式可執行檔的資料夾。私用並存組件 (Assembly) 都必須部署到應用程式本機資料夾,或是它的其中一個子資料夾內。如需適用於包含私用並存組件之子資料夾的命名規則詳細資訊,請參閱組件搜尋序列

在第一個情況下,具有特定 Visual C++ 組件的合併模組必須加入到 Windows Installer 套件中,或加入到用來將此應用程式部署到另一部電腦的類似安裝套件中。如需詳細資訊,請參閱使用合併模組轉散發。您可以在 HOW TO:部署安裝和部署專案中找到這種部署的範例。

應用程式安裝的必要條件是,Visual C++ 可轉散發套件 (VCRedist_x86.exe、VCRedist_x64.exe、VCRedist_ia64.exe) 必須在目標系統上執行。這個套件會安裝並註冊所有 Visual C++ 程式庫。

注意事項:

對於使用 Visual C++ Express 建置的應用程式,以及希望一次部署所有 Visual C++ 程式庫的情況,我們建議您使用這個套件來轉散發 Visual C++ 程式庫。

如需這個套件的使用範例,請參閱 HOW TO:使用 XCopy 部署

將 Visual C++ 程式庫部署為私用並存組件時,所有組成這個組件的 DLL 和資訊清單檔案都必須加入到 Windows Installer 或類似的安裝套件中。這些檔案必須依照部署私用組件的規則,部署到目標電腦上應用程式本機資料夾的子目錄中。如需哪些 Visual C++ DLL 和資訊清單檔案屬於哪些 Visual C++ 組件的一部分之詳細資訊,請參閱Visual C++ Libraries as Shared Side-by-Side Assemblies。您可以在組件搜尋序列中,找到部署私用組件以供在執行階段載入時,必須遵循之規則的描述。如需如何將 Visual C++ 程式庫部署為私用組件的範例,請參閱 HOW TO:使用 XCopy 部署

可能的執行階段錯誤

如果您的應用程式中有資訊清單,但需要的 Visual C++ 程式庫未安裝在 WinSxS 資料夾中,可能會出現下列錯誤 (依嘗試執行應用程式的 Windows 版本而定):

  • 應用程式無法正常初始化 (0xc0000135)。

  • 因為應用程式組態不正確,所以無法正常啟動。重新安裝應用程式或許可以修復這個問題。

  • 系統無法執行指定的程式。

如果您的應用程式中沒有資訊清單,則出現的錯誤須視您的應用程式所依賴的 Visual C++ 程式庫是部署在應用程式本機資料夾中或共用資料夾中,例如 System 資料夾或 WinSxS 資料夾。

注意事項:

不支援轉散發未使用資訊清單所建置的 C/C++ 應用程式。一定要有將應用程式繫結至 Visual C++ 程式庫的資訊清單,C/C++ 應用程式才可以使用這些程式庫。如需詳細資訊,請參閱選擇部署方法

如果找得到 (可能安裝在應用程式本機資料夾或 System 資料夾中) Visual C++ 程式庫 DLL (例如 MSVCR90.DLL),便可能會收到下列錯誤訊息:

R6034 應用程式試圖以不正確的方式載入 C 執行階段程式庫。

如果找不到 DLL,而且 Windows 無法載入應用程式的 DLL,可能會收到下列錯誤:

因為找不到 MSVCR90.dll 所以應用程式無法啟動。重新安裝應用程式可能可以解決這個問題。

若要解決這些錯誤,您必須確定已正確建置您的應用程式,而且 Visual C++ 程式庫已正確部署在目標系統上。若要找出這些執行階段錯誤的根本原因,請依照疑難排解 C/C++ 隔離應用程式和並存組件中所列的步驟進行。

本章節內容

請參閱

概念

部署範例

疑難排解 C/C++ 隔離應用程式和並存組件

其他資源

部署 (C++)