Share via


Visual C++ 2010 中的部署

當您將應用程式部署到另一台電腦時,必須安裝該應用程式本身以及應用程式相依的所有程式庫檔案。 Visual C++ 2010 提供三個方式來隨應用程式一起部署 Visual C++ 執行階段:集中部署、本機部署或靜態連結。

集中部署

集中部署表示您的 Visual C++ DLL 安裝於 System32 目錄。 若要集中部署應用程式,可使用下列其中一項工具:

  • **VCRedist_**architecture.exe 命令列工具,其中 architecture 是 x32x64ia64

  • 合併模組。

VCRedist_<架構>.exe 會安裝特定硬體平台的所有程式庫。 合併模組 (或 .msm 檔案) 提供標準方法,讓開發人員將共用的 Windows Installer 元件和安裝邏輯傳遞至應用程式。

集中部署的主要優點是可提供緊急服務。 如果發現嚴重的安全性弱點,Microsoft 會自動更新經過集中部署的程式庫檔案。

本機部署

本機部署表示您的應用程式程式庫檔案安裝於應用程式資料夾。 若要在本機部署應用程式,只需將可執行檔及其關聯程式庫檔案複製至資料夾中。

不同的程式庫版本可以並存,因為檔案名稱包含版本號碼 (例如第 10 版 CRT DLL 就是 msvcr100.dll)。

與集中部署程式庫不同的是,本機程式庫不會由 Microsoft 自動更新。 如果您決定使用本機部署,則也應實作用來更新程式庫的方法。

靜態連結

您可以將應用程式靜態連結至任何程式庫 (例如 CRT、MFC 或 ATL) 以產生與 DLL 之間無相依性的可執行檔。 靜態連結的優點是應用程式的部署可以從一部電腦複製至另一部電腦,而不用同時複製程式庫檔案。 如果您使用靜態連結,而 Microsoft 更新了您連結的程式庫,則應用程式就不能使用更新後的程式庫。

安全性弱點

如果發現安全性弱點,Microsoft 會提供 Hotfix,這是受影響程式庫的修補版本。 應用程式撰寫人員有責任將 Hotfix 部署至具有該弱點之程式庫的電腦上。

如果該安全性弱點被認定很嚴重而需要緊急服務,Microsoft 會使用 Microsoft Update,為所有集中安裝了該特定 Visual C++ 程式庫的電腦提供服務。 如果您的應用程式使用的是本機程式庫檔案,則您必須自行提供緊急服務。

Visual C++ 2008 和 Visual C++ 2010 的差異

Visual C++ 2008 與 Visual C++ 2010 之間最重大的變更為:

  • Visual C++ 程式庫不再依賴資訊清單,也不再安裝於 WinSxS 資料夾。

  • 相依於它的應用程式和程式庫不再需要資訊清單的資訊。

  • 本機部署不再需要附屬資訊清單。

  • 載入本機 Visual C++ 程式庫時無法重新導向至中央位置。

  • 緊急服務僅適用於集中部署的程式庫。

疑難排解

若要診斷載入器問題,請使用 depends.exe 或 where.exe。 Visual C++ 程式庫的載入順序是由 LoadLibraryEx 定義。

請參閱

其他資源

部署 (Visual C++)