HOW TO:部署安裝和部署專案
更新:2007 年 11 月
本主題著重於安裝和部署專案的專案類型。如需此部署案例的背景,請參閱部署範例的案例。
將 Visual C++ 程式庫 DLL 部署為共用組件的程序
建立安裝和部署專案
從 [檔案] 功能表,按一下 [新增專案],開啟 [其他專案類型] 節點,並選取 [安裝和部署],然後按一下 [安裝專案]。提供名稱,然後按一下 [確定]。
注意事項: Visual C++ Express 不支援安裝專案。若要轉散發在 Visual C++ Express 中所建置之應用程式的 Visual C++ 程式庫,請使用 Visual C++ 可轉散發套件。如需詳細資訊,請參閱 HOW TO:使用 XCopy 部署。
將 EXE 和 DLL 加入到專案中,並指定應該要將它們安裝到目標電腦上的何處
從 [專案] 功能表,選取 [加入],然後按一下 [檔案]。
尋找包含 MyApplication.exe 和 MyLibrary.DLL 的資料夾,然後予以選取。
在 [檔案系統] 視窗中,以滑鼠右鍵按一下 [應用程式資料夾],指向 [加入],然後按一下 [建立] 建立新資料夾。將它命名為 MyLibrary。
再次按一下 [應用程式資料夾],並選取 MyLibrary.DLL,然後將它拖曳到 [MyLibrary] 資料夾中。在 [方案總管] 的專案之下,應該可以在 [偵測相依性] 中看到 Visual Studio 會偵測對於 MFC90.dll 和 MSVCR90.dll. 的相依性。您必須加入這些 DLL 的對應合併模組。
從 [專案] 功能表中指向 [加入],然後按一下 [合併模組]。選取 [Microsoft_VC90_CRT_x86.msm] 和 [Microsoft_VC90_MFC_x86.msm],並按一下 [確定]。針對這些合併模組的偵錯版本,選取 [Microsoft_VC90_DebugCRT_x86.msm] 和 [Microsoft_VC90_DebugMFC_x86.msm]。
注意事項: 確認對應的 policy*.msm 模組加入到專案中。例如,policy_9_0_microsoft_vc90_crt_x86.msm 和 policy_9_0_microsoft_vc90_mfc_x86.msm 分別對應於 Microsoft_VC90_CRT_x86.msm 和 Microsoft_VC90_MFC_x86.msm。Visual Studio 將會偵測到相依於這些原則模組的主要模組,並將它們列在 [偵測到的相依性] 之下。如果沒有自動偵測到相依性,您就需要手動合併原則模組。
若要將 64 位元應用程式部署到 64 位元作業系統,請針對對應的平台選取合併模組。若是 x64,請選取 [Microsoft_VC90_CRT_x86_x64.msm] 和 [Microsoft_VC90_MFC_x86_x64.msm]。若是 Itanium,則請選取 [Microsoft_VC90_CRT_x86_ia64.msm] 和 [Microsoft_VC90_MFC_x86_ia64.msm]。
建置 setup.exe
- 按一下 [建置] 功能表上的 [建置方案]。
執行 setup.exe
- 現在如果拿剛才建置的 setup.exe,在支援資訊清單架構繫結 (將應用程式繫結至其相依性) 的作業系統上執行 (Windows XP Home Edition、Windows XP Professional、Windows Server 2003),就會發生下列狀況:
將 Visual C++ 程式庫 DLL 部署為私用組件的程序
建立安裝和部署專案
- 從 [檔案] 功能表,按一下 [新增專案],開啟 [其他專案類型] 節點,並選取 [安裝和部署],然後按一下 [安裝專案]。指定名稱,然後按一下 [確定]。
將 EXE 和 DLL 加入到專案中,並指定應該要將它們安裝到目標電腦上的何處
從 [專案] 功能表,選取 [加入],然後按一下 [檔案]。
尋找包含 MyApplication.exe 和 MyLibrary.DLL 的資料夾,然後予以選取。
在 [檔案系統] 視窗中,以滑鼠右鍵按一下 [應用程式資料夾],指向 [加入],然後按一下 [建立] 建立新資料夾。將它命名為 MyLibrary。
再次按一下 [應用程式資料夾],並選取 MyLibrary.DLL,然後將它拖曳到 [MyLibrary] 資料夾中。在 [方案總管] 的專案之下,應該可以在 [偵測相依性] 中看到 Visual Studio 會偵測對於 MFC90.dll 和 MSVCR90.dll. 的相依性。您必須從 \vc\redist 資料夾加入這些組件的對應資料夾。
注意事項: 若要偵錯組建 (Build),請使用 \vc\redist\debug_nonredist。
在 Windows 檔案總管中開啟 %PROGDIR%\Microsoft Visual Studio 8\VC\Redist\x86。
按住 Ctrl 鍵,按一下 [Microsoft.VC90.CRT] 和 [Microsoft.VC90.MFC] 資料夾。將這些資料夾拖曳至 Visual Studio,並將它們放入 [應用程式] 資料夾中。
重複執行步驟 6,但這次請將資料夾拖曳至 MyLibrary 資料夾。
您可能會看到一則來自 Visual Studio 的訊息,表示您所包含的 DLL 是合併模組的一部分。這正是您要執行的動作。因此,請按一下 [否] 表示您不要對這個 DLL 使用 MSM。
只有在使用 MFC/Winforms 整合時,您才會需要 mfcm90.dll 及其 Unicode 版本的 mfcm90u.dll。否則,您可以從安裝程式移除這些 DLL。
只有當您在應用程式中使用 Managed 程式碼時,才需要使用 msvcm90.dll (例如,專案是使用 /clr or /clr:pure 建置而成的時候)。
如果安裝專案中包含了 mfcm90.dll、mfcm90u.dll 或 msvcm90.dll,便會需要安裝 .NET Framework。您的安裝程式將無法在沒有安裝 .NET Framework 2.0 的目標電腦上運作。
若是偵錯用途的安裝,請將上一步驟中的 CRT 變更為 DebugCRT,並將 MFC 變更為 DebugMFC。
若要將 64 位元應用程式部署至 64 位元作業系統,請使用 \vc\redist\amd64 或 \vc\redist\ia64。
建置 setup.exe
- 按一下 [建置] 功能表上的 [建置方案]。
執行 setup.exe
現在如果拿剛才建置的 setup.exe,在支援資訊清單架構繫結的作業系統上執行 (Windows XP Home Edition、Windows XP Professional、Windows Server 2003),就會發生下列狀況:
您的應用程式會安裝在指定的目標資料夾中。
應用程式和 DLL 會在執行階段使用 Microsoft.VC90.CRT 和 Microsoft.VC90.MFC 資料夾中的 CRT 和 MFC 組件。
在不支援資訊清單架構繫結的作業系統上 (Windows 2000),不建議使用這個部署方法。如果您嘗試在這些作業系統上,以先前所描述的步驟將 Visual Studio 組件部署為私用組件,則作業系統載入器將無法找到 CRT 和 MFC DLL。包含 Microsoft.VC90.CRT 和 Microsoft.VC90.MFC 的資料夾都必須加入到 PATH 環境變數,才能讓載入器找到它們。在此模式下,便會發生下列狀況:
您的應用程式會安裝在指定的目標資料夾中。
系統載入器會在執行階段透過 PATH 環境變數,從 Microsoft.VC90.CRT 和 Microsoft.VC90.MFC 資料夾解析 CRT 和 MFC 私用組件的位置。