使用 Windows Installer 和 Windows 資源保護
Windows安裝程式會遵循在 Windows Server 2008 和更新 Windows版本中安裝基本系統檔案、資料夾和登錄資訊時,Windows Resource Protection (WRP) 。
Windows Server 2008 和 Windows Vista 中的 WRP 會取代 Windows Server 2003、Windows XP 和 Windows 2000 中的WINDOWS檔案保護 () 。 Windows安裝程式開發人員應該注意下列變更,以瞭解安裝程式如何處理 Windows server 2008 和更新版本中受保護的資源,以及Windows Vista 和更新版本:
- 在 Windows Server 2008 和更新版本或Windows Vista 和更新版本上執行時,Windows安裝程式會略過 WRP 保護的任何檔案安裝,安裝程式會在記錄檔中輸入警告,並繼續進行安裝其餘部分,而不會發生錯誤。 在 Windows Server 2003、Windows XP 和 Windows 2000 中,當Windows安裝程式遇到一個以一個一般保護的檔案時,安裝程式會要求其安裝檔案。
- Windows Server 2008 和更新版本或 Windows Vista 和更新版本的 WRP 除了檔案之外,還可以保護登錄機碼。 如果Windows安裝程式遇到受 WRP 保護的登錄機碼,安裝程式會略過該登錄機碼的安裝,安裝程式會在記錄檔中輸入警告,並繼續安裝其餘部分,而不會發生錯誤。
- 請注意,如果 Windows Installer 元件包含受 WRP 保護的檔案或登錄機碼,則必須使用此資源作為元件的 KeyPath。 在此情況下,Windows安裝程式不會安裝、更新或移除元件。 您不應該在安裝套件中包含任何受保護的資源。 相反地,您應該使用支援的資源取代機制來Windows資源保護。
如需 WRP 的詳細資訊,請參閱Windows 資源保護和Microsoft Technet上提供的資訊。
WINDOWS Server 2003 和 Windows XP/2000 的WINDOWS
Windows安裝程式在 Windows Server 2003、Windows XP 和 Windows 2000 上安裝基本系統檔案時,會遵循WINDOWS檔案保護 () 。 如果應用程式的自動安裝修改受保護的系統檔案,則此檔案會還原至已驗證的檔案版本。
Windows Installer 永遠不會嘗試安裝或取代受保護的檔案。 當 InstallFiles 動作或任何其他排程的動作在InstallFiles嘗試在 Windows Server 2003 上安裝受保護的檔案時,Windows XP 或 Windows 2000,安裝程式會要求安裝或取代受保護的檔案。 安裝程式在執行 InstallFiles 動作之後,會立即向其要求檔案安裝。 其會以受保護檔案的快取版本,安裝或取代使用者系統上的檔案。 請注意,這不保證從快取安裝的檔案版本是應用程式所需的版本。 安裝檔案之後,安裝程式會判斷此版本是否符合套件中的版本。 如果套件中的檔案版本大於已安裝的版本,安裝程式會通知使用者它無法更新系統,而且可能需要更新應用程式的作業系統。
如果在 InstallFiles 嘗試安裝或取代尚未安裝在系統上的受保護檔案之後排序的任何動作,安裝程式就無法呼叫一個的一般來安裝檔案。 在此情況下,安裝程式會通知使用者它無法更新系統,而且可能需要更新應用程式的作業系統。
安裝程式也會在移除檔案時檢查一次,而且永遠不會嘗試移除受保護的系統檔案。
受其保護的元件金鑰檔案
請注意,如果Windows安裝程式元件包含一個的一個檔案,則必須將此檔案指定為元件的索引鍵路徑。
當安裝程式嘗試在 server 2003 Windows Server 2003 上安裝元件的金鑰檔時,Windows XP 或 Windows 2000 時,它會先呼叫一個的一個,以判斷金鑰檔案是否受到保護。 當元件的金鑰檔案受到一個元件保護,而且已安裝該金鑰檔案時,只有當套件中的金鑰檔案版本大於已安裝的版本時,安裝程式才會更新元件。 如果安裝套件指定安裝元件,而且目前未安裝元件的金鑰檔,則不論金鑰檔是否受到保護,安裝程式都會安裝元件。 一旦安裝任何元件有受一個受其保護的金鑰檔案,它就會永久安裝,而且安裝程式永遠不會移除或取代元件。
依一開始的元件安裝
元件的其與系統檔案的一般專案不同。
一旦偵測到嘗試取代受保護系統檔案,才能保護WINDOWS Server 2003、Windows XP 和 Windows 2000 系統檔案。 在一個受保護目錄中的檔案收到目錄變更通知之後,就會觸發此保護。 當其收到此通知時,它會判斷哪個檔案已變更。 如果檔案受到保護,則一般會查詢靜態類別目錄檔案中的檔案簽章,以判斷新檔案是否為正確的版本。 如果檔案版本不正確,系統會使用來自快取或散發媒體的正確版本來取代檔案。
相較之下,元件的一個方案是動態的。 在檔案新增至共用並存組件快取時,會將其擴充至檔案。 如果元件損毀,則一般會要求安裝程式取代檔案。 Windows安裝程式可能或無法根據來源套件是否可存取來取代檔案。 如果無法存取來源套件,則一個對話方塊會指出無法還原檔案。
請注意,安裝在 %windir%\winsxs 中的 Unmanaged 共用並存元件會受到一起保護。 安裝在應用程式目錄中的 Unmanaged 私用元件不會受到其保護。 安裝于應用程式目錄或 %windir%\assembly\gac 中的 Managed 通用群組件不會受到其保護。
相關主題