270 likes | 387 Views
LESSION 7 部署應用程式. 鄧姚文. 參考書. 林文恭、吳進北、吳惠雯( 2011 ), MTA Exam 98-362 視窗研發認證實戰寶典, 碁峰資訊股份有限公司, ISBN 9789862763629 (書號 CMS101200 ) 林建宏 譯( 2011 ), MTA Exam 98-362 Windows Developer Fundamentals 官方認證教材, 碁峰資訊股份有限公司, ISBN 978-986-276-226-4 (書號 CMS100200 ). 7.1 部署應用程式和元件.
E N D
LESSION 7部署應用程式 鄧姚文
參考書 林文恭、吳進北、吳惠雯(2011), MTA Exam 98-362 視窗研發認證實戰寶典, 碁峰資訊股份有限公司, ISBN 9789862763629 (書號 CMS101200) 林建宏 譯(2011), MTA Exam 98-362 Windows Developer Fundamentals 官方認證教材, 碁峰資訊股份有限公司, ISBN 978-986-276-226-4 (書號 CMS100200)
7.1 部署應用程式和元件 • 將已完成的應用程式或元件傳送到其他電腦上進行安裝的過程稱為部署 • 在 Visual Studio 2008 中,可以使用: • ClickOnce部署 • 將應用程式發行至集中式位置,使用者可從這個位置安裝或執行應用程式 • Windows Installer 部署 • 將應用程式封裝在 setup.exe 檔案,釋出這個檔案給使用者 • 使用者執行 Setup.exe 檔案安裝應用程式
選擇部署策略時的考慮因素 應用程式類型 使用者類型和位置 應用程式更新的頻率 安裝需求
7.2Windows Installer • Windows Installer 是在 Windows 2000 時提出,作為微軟作業系統中的安裝程式(Installation Program)開發標準的作業系統服務 • 支援安裝程式所需的功能 • 支援交易式安裝(Committable Installation) • 當安裝程式發現錯誤或問題時,可以將安裝程式中所做的任何修改(包含複製檔案,修改組態等)全部回溯為未變更的狀態 • 目前 Windows Installer 最新版本為 5.0 版
Windows Installer程序 將安裝專案加入至方案 建立安裝檔案 散發給使用者 使用者可執行安裝檔案,逐步執行精靈,安裝應用程式
7.3ClickOnce • 簡化安裝和更新應用程式的處理程序 • 透過網路自動更新版本 • 最少的使用者互動 • 對於需要經常變更的應用程式是最佳選擇 • 需要網路 • 最初可透過 CD-ROM 安裝 • 但使用者必須有網路連線,才能更新 • 安全性考量 • 可能要求使用者選擇安全性選項 • 不適合經驗不足的使用者
ClickOnce應用程式 • ClickOnce應用程式 • 使用 ClickOnce技術所發行的任何 Windows Presentation Foundation、Windows Form 或主控台應用程式 (Console Application) • 三種不同的發行方式 • 透過 Web 網頁。 • 透過網路檔案共用。 • 透過 CD-ROM 之類的媒體。 • 可以安裝在一般使用者電腦上 • 即使電腦離線,也可以在本機上執行 • 也可以在僅限線上模式中執行 • 不需要在一般使用者電腦上永久安裝任何項目
ClickOnce應用程式 • 自動更新 • 檢查網路上是否有新版本 • 自動更新檔案 • 開發人員可以指定更新行為 • 管理員也以控制更新策略 • 例如,將更新標記為『強制』的 • 一般使用者或系統管理員都可以將更新復原為之前的版本。
ClickOnce應用程式 • 安裝或執行 ClickOnce應用程式都不會中斷現有的應用程式。 • ClickOnce應用程式是獨立的 • ClickOnce應用程式都會安裝在針對使用者和應用程式的安全快取中,然後從中執行 • ClickOnce應用程式會在網際網路或內部網路的安全性區域 (Security Zone) 中執行 • 必要時,可以要求更高的安全性權限
ClickOnce部署如何運作 • ClickOnce核心部署架構以兩個 XML 資訊清單檔為基礎: • 應用程式資訊清單 • 部署資訊清單 • 應用程式資訊清單 • 描述應用程式本身,包括組件 (Assembly)、組成應用程式的相依性和檔案、必要的使用權限,以及可以取得更新的位置。 • 使用 Visual Studio 2008 中的發行精靈或 Windows Software Development Kit (SDK) 中的資訊清單產生工具 (Mage.exe) 編寫應用程式資訊清單 • 部署資訊清單 • 描述應用程式的部署方式,包括應用程式資訊清單的位置以及用戶端應該要執行的應用程式版本。 • 系統管理員使用 Windows SDK 中的資訊清單產生工具 (Mage.exe),撰寫部署資訊清單
ClickOnce部署如何運作 • 部署資訊清單建立後,複製到部署位置中 • 可能是 Web 伺服器、 • 網路檔案共用, • 或 CD • 應用程式資訊清單和所有應用程式檔案,也都複製到部署資訊清單中指定的部署位置。 • 可能與部署位置相同,也可能是不同的位置 • 使用 Microsoft Visual Studio 中的 [ 發行精靈] 時,自動執行複製作業
ClickOnce部署如何運作 • 部署後,使用者如何安裝? • 按一下 Web 網頁內的超連結 • 雙擊資料夾內表示部署資訊清單檔的圖示 • 彈出對話方塊,詢問使用者是否確定要安裝 • 如果應用程式需要更高的權限,對話方塊也會要求使用者授與權限,才繼續進行安裝 • 安裝後,應用程式加入使用者的 [ 開始] 功能表和 [ 控制台] 的 [ 新增或移除程式] 群組 • [Program Files] 資料夾、登錄或桌面都不會加入任何項目 • 安裝時不需要系統管理員權限 • 新版本的應用程式有新的應用程式資訊清單
ClickOnce部署如何運作 除了部署位置以外,部署資訊清單也會包含應用程式檢查更新版本的更新位置 (Web 網頁或網路檔案共用) ClickOnce的 [ 發行] 屬性,用來指定應用程式應該檢查更新的時間和頻率。 可以在部署資訊清單中指定更新行為,也可以利用 ClickOnce API,在應用程式的使用者介面中,將更新行為提供成使用者選項。 此外,可以採用 [ 發行] 屬性,讓更新成為強制的,或是復原為之前的版本。
比較 ClickOnce和 Windows Installer 如果使用 Windows Installer,就必須在應用程式程式碼中實作程式設計更新 如果使用 ClickOnce,就可以在 [ 新增或移除程式 ] 中復原 ClickOnce部署只能以「完全信任」權限來存取 HKEY_LOCAL_MACHINE (HKLM)。
7.5 其他部署 • Xcopy命令 • Windows Xcopy命令是從某位置將專案或應用程式,複製到另一個位置的簡便方法。 • 除了最簡單的情況外,建議還是需要部署專案,而不要使用 Xcopy。 • Xcopy無法註冊或驗證組件的位置,Web 專案無法自動設定 IIS 目錄設定。 • 可能會覆寫檔案中斷其他應用程式 • 查詢用法:XCOPY /?
經由可散發媒體部署 • 將 .msi檔案複製到磁片或其他媒體上 • 軟式磁碟片 • CD-ROM • 置於網路磁碟機透過網路安裝
7.6 設定和部署專案樣本 • Visual Studio 提供四種部署專案: • 合併模組專案(Merge Module Project) • Packages components that might be shared by multiple applications • 安裝專案( Setup Project ) • Builds an installer for a Windows-based application • Web 安裝專案( Web Setup Project ) • Builds an installer for a Web application • 封包專案(Cab Project) • Creates a cabinet file for downloading to a legacy Web browser • 安裝精靈 • 逐步建立部署專案
安裝專案 • 建立安裝程式 • 產生 Windows Installer (.msi) 檔案 • 包含應用程式、相依檔案、應用程式資訊,例如登錄項目和安裝的指令 • 安裝 .msi檔案可以確定所有的必要項目都包含在內。 • 如果因某些原因導致安裝失敗:復原 • 例如:目標電腦沒有必要的作業系統版本 • 兩種安裝專案 • 安裝專案 • 將檔案安裝到目標電腦的檔案系統內 • Web 安裝專案 • 將檔案安裝至 Web 伺服器的虛擬目錄中
封包檔專案 • 建立 .cab 檔案 • 可從 Web 伺服器下載至 Web 瀏覽器的 ActiveX 控制項 • 無編輯器 • 屬性 • 指定壓縮等級 • 實作 Authenticode 簽章 • 設定顯示名稱和版本資訊 • 指定 Web 上相依檔案的位置
合併模組專案 • 建立可重複使用的安裝元件 • 在 Windows 安裝程式間分享安裝程式碼 • 如同動態連結程式庫 • 在應用程式間分享程式碼 • 合併模組 (.msm檔) • 包含安裝元件所需的所有檔案、資源、登錄項目及安裝邏輯 • 無法單獨安裝,必須在 Windows Installer (.msi) 中使用 • 擷取特定元件的所有相依性,確保版本正確 • 一旦散發合併模組就無法再做修改 • 應為元件的每一個後續版本建立新的合併模組 • 為避免版本問題,多重應用程式所共用的元件或檔案都應該使用合併模組 • Installer Rollback 方法 • 在衍生類別中被覆寫時,會還原電腦安裝之前的狀態