本講詳細介紹 Visual Studio .NET 內建的安裝與部署專案功能,從 Release 版本建置、建立安裝專案、修改屬性、自定義標題圖像、添加序號驗證對話框、生成開始選單項目與桌面捷徑,完整覆蓋 Windows Installer (MSI) 專案的核心配置技巧。
Release/ 下 (如 Viewer.exe),無調試資訊、經優化、體積最小、速度最快。**差異對照**:
| 特性 | Debug | Release |
|---|---|---|
| 調試符號 | 完整 | 無 (或僅行號) |
| 優化 | 關閉 (/Od) | 全速 (/O2) |
| MFC/CRT | Debug 版 DLL | Release 版 DLL |
| 輸出目錄 | Debug/ | Release/ |
| 用途 | 開發調試 | 正式發布 |
ViewerSetup。Viewer.exe (Release 版) → 確定 → 下一步。MFC_Loc_FE.msm (東亞語系支援) 和 VC_MFC.msm (MFC 執行庫) — **確保目標機器無需安裝 VC 即可運行**。ViewerSetup.msi 於 ViewerSetup/Debug/ (或 Release/)。選中方案總管頂層 ViewerSetup,屬性視窗關鍵屬性:
| 屬性 | 說明 | 建議值 |
|---|---|---|
| Author | 作者/聯絡人 | 丁有和 |
| Manufacturer | 開發公司/發行商 | 計算機編程維護與技巧 雜誌社 |
| ManufacturerUrl | 公司網址 | www.comprg.com.cn |
| ProductName | 顯示名稱 (含前後空格) | 文本瀏覽器 |
| Subject | 補充描述 | 文本瀏覽器 |
| Title | 安裝程式標題 | 文本瀏覽器 |
| UpgradeCode / PackageCode / ProductCode | GUID 唯一標識 | **保留預設自動生成** |
| 字元 | 含義 |
|---|---|
| # | 需輸入數字,不參與驗證 |
| % | 需輸入數字,參與 Windows Installer 驗證算法 |
| ? | 需輸入字母數字,不參與驗證 |
| ^ | 需輸入大寫字母或數字 |
| < / > | 左/右側字元在對話框中隱藏 |
若需自定義驗證邏輯 (如序號必須等於特定字串),需編寫 **自訂動作** (Custom Action,C++ DLL 或 VBScript/JScript),屬進階主題。
文本瀏覽器。Viewer.exe → 確定。執行 文本瀏覽器Viewer.ico (需先 新增 → 檔案 加入專案)。Viewer.exe。文本瀏覽器,Icon = Viewer.ico。| 屬性 | 用途 |
|---|---|
| Arguments | 命令列參數 (僅 .exe 自訂動作) |
| ShowCmd | 視窗狀態: Normal/Minimized/Maximized |
| Target | 目標路徑 (自動解析) |
| Transitive | 重新安裝時是否重新評估 Condition (高級,預設 False) |
| WorkingFolder | 執行工作目錄 |
Visual Studio .NET 內建的安裝部署專案基於 **Windows Installer (MSI)**,提供標準化、事務性、可腳本化的安裝體驗。掌握:
1. **Release 版建置** 是前提。
2. **合併模組** 解決運行庫依賴。
3. **屬性/使用者介面/檔案系統** 三大編輯器分別控制元數據、安裝介面、檔案佈局。
4. **Banner、序號、捷徑** 是商業級安裝包的標配。
5. 最終產出 .msi 可直接燒錄光碟、上傳下載、透過群組原則 (GPO) 推送安裝。
**下一步進階**:WiX Toolset (XML 定義 MSI)、InstallShield Limited Edition (VS 整合)、ClickOnce (智能客戶端部署)、MSIX (現代打包格式)。