選擇部署方法
大多數情況下,Visual C++ 應用程式的部署都是利用 Windows Installer 部署所完成。 如需 Visual Studio 所支援之部署方法及替代方法的詳細資訊,請參閱 選擇部署策略和Deployment Alternatives。 Visual Studio 2010 中不支援 Visual C++ 原生應用程式的 ClickOnce 部署;但是,可以在命令列透過 ClickOnce 來部署 Visual C++ 應用程式。 如需詳細資訊,請參閱Visual C++ 應用程式的 ClickOnce 部署。
Visual C++ 程式庫是共用 DLL
Visual Studio 2010 會將 Visual C++ 程式庫當做共用 DLL 安裝至 %windir%\system32 目錄。 為了確保 Visual C++ 應用程式可在未安裝 Visual C++ 的電腦中執行,您必須將 Visual C++ DLL 與應用程式一起轉散發,並確定目標電腦中已經安裝這些組件。
轉散發 Visual C++ 程式庫
有三種方法可以轉散發 Visual C++ DLL:
建議您使用 Visual C++ 轉散發套件 (VCRedist_x86.exe、VCRedist_x64.exe、VCRedist_ia64.exe),將所有 Visual C++ 程式庫當做共用 DLL 安裝至 %windir%\system32。 Visual Studio 會將這個套件安裝在 %WindowsSdkDir%\Bootstrapper\Packages 資料夾中。 您也可以從 Microsoft 下載中心 (英文) 下載它。 如需這個套件的使用範例,請參閱逐步解說:使用 Visual C++ 可轉散發套件部署 Visual C++ 應用程式。
使用 Visual C++ 可轉散發合併模組,將特定 Visual C++ 程式庫當做共用 DLL 安裝至 %windir%\system32。 若要存取這個資料夾,必須由具備系統管理權限的使用者來執行安裝應用程式。 如需詳細資訊,請參閱使用合併模組轉散發。 您可以在 逐步解說:使用安裝專案部署 Visual C++ 應用程式中找到這種部署的範例。
使用 Program Files\Microsoft Visual Studio 10.0\VC\Redist 目錄中提供的檔案,可將特定 Visual C++ DLL 安裝至與應用程式安裝位置相同的資料夾。 這是建議的方式,讓沒有管理權限的使用者或在可從共用執行應用程式時可以安裝應用程式。
使用可轉散發合併模組安裝 Visual C++ 程式庫時,會將 DLL 當做共用 DLL 部署至 %windir%\system32。 若要存取這個資料夾,必須由具備系統管理權限的使用者來執行安裝應用程式。
如果安裝是由不具備系統管理權限的使用者所執行,則安裝作業將無法部署 Visual C++ DLL,而應用程式也不會執行。 此外,某些產品可能允許根據每一使用者進行安裝,但是合併模組會將程式庫安裝到共用位置,且會影響到系統的所有使用者。 在這些情況及類似的情況下,支援的方法是將必要的 DLL 安裝至特定使用者之應用程式的目錄中。
使用這個方法之後,便能夠將 DLL 複製到應用程式的本機資料夾中。 作業系統的載入器在執行應用程式時,會使用 LoadLibraryEx (英文) 中所述的搜尋順序。
不正確的轉散發 Visual C++ 程式庫可能會在執行相依的應用程式時發生執行階段錯誤。
動態連結優先於靜態連結
不建議轉散發靜態連結至 Visual C++ 程式庫的 C/C++ 應用程式, 經常會被人誤以為將程式靜態連結至 Visual C++ 程式庫之後,可能會讓應用程式的效能大為提升。 但是,在幾乎所有情況下,動態載入 Visual C++ 程式庫對效能產生的影響,是微不足道的。 此外,靜態連結不允許由應用程式的作者或 Microsoft 來服務應用程式和其相依程式庫。 例如靜態連結至特定程式庫的應用程式,而此應用程式可以在具有此新版程式庫的用戶端電腦上執行。 此應用程式仍然會使用舊版程式庫中的程式碼,而且不會因程式庫的提升 (例如安全性增強) 而受益。 C/C++ 應用程式的作者強烈建議,在決定要以靜態方式連結至相依程式庫之前,一定要仔細考量此服務情況,並盡可能使用動態連結。