免責聲明

Disclaimer (免責聲明)
繼續閱覽代表您接受以上的免責聲明.
To continue reading means you accept the above disclaimer.

2011年8月5日 星期五

Windows Installer 與 Dual-purpose package

//=== Windows Installer, Microsoft Installer, Microsoft Windows Installer (MSI)
Windows Installer 目前出到5.0 版

Windows Installer 用來安裝/管理/更新/升級/移除 所安裝的套裝軟體(msi package)
支援
  • component management.  
  • advertisement of applications and features ?
  • dual-purpose package ( Windows Installer 5.0 )
  • least privilege installation by proxy for unprivileged users ?



//===
Key path or Key file 的觀念比較像資料庫的key 
用來判斷一個component 是否有更新或異動


可以用Orca.exe 來檢視 msi 的內容


//=== Dual-purpose package
Windows Installer 5.0 允許在一個 msi package 中同時支援 perUser 與 perMachine的安裝機制
這樣的 msi package 稱做 dual-purpose package ;
這個機制則有一個令我混淆的名稱: single package authoring


Dual-purpose package 可以在 Windows 7 與 Windows Server 2008 R2 , 用Windows Installer 5.0 安裝,
Vista 以前的作業系統呢? Windows Installer 4.5以前的版本呢?

Per-user installation context: 當Windows Installer 5.0 安裝一個 dual-purpose package 時 ,  檔案與登錄(registry entries) 指到 per-user 的位置, 不會觸發 UAC credential prompt

Per-machine installation context: 當Windows Installer 5.0 安裝一個 dual-purpose package 時 , 檔案與登錄(registry entries) 指到 per-machine的位置, 會觸發 UAC credential prompt 以確認使用者是否有足夠的權限


***  用Windows Installer 4.5及以前的Installer 安裝 dual-purpose package 時 
Installer 將忽略 MSIINSTALLPERUSER ,  進入per-machine installation context
並觸發 UAC credential prompt ...



//=== 
" ... Once Windows Installer 5.0 installs an application, it uses the same installation context for all subsequent updates, repairs, or removal of the application."

A valid dual-purpose package must be able to pass validation by ICE105.



//=== dual-purpose package development guideline and example
...



[ref]
http://en.wikipedia.org/wiki/Windows_Installer#Key_paths
http://msdn.microsoft.com/en-us/library/cc185688(v=vs.85).aspx

dual-purpose msi package
http://msdn.microsoft.com/en-us/library/dd408068(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/dd770204(v=vs.85).aspx (example)


~~~

沒有留言:

張貼留言