2010-06-17 65 views
0

我想使用VS2005安裝程序項目在Windows Server 2008(SP2 x64)和Windows 7(x64)上部署應用程序。 MSI版本(我認爲)它是2.0。Windows Server 2008/Windows 7 MSI文件/註冊表失敗(x64)

一切工作正常,除了一些註冊表項和一些文件不復制在安裝機器上。 MSI系統沒有通知任何東西(我不知道MSI是否記錄其操作)。

我的MSI安裝程序項目和這些新操作系統之間是否存在不兼容性?在我看來,操作系統保護自己在某些部分進行修改。

例如,我正在嘗試設置註冊表項:

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows NT \ WinLogon的\在SpecialAccounts \ UserList的\用戶

但不創建。在同一個安裝程序中,還有許多其他的按鍵,它們是按照預期創建的(就像以前在Windows XP和Windows Server 2003上一樣)。

提供另一個例子中,我試圖安裝該文件

%SystemFolder%\ OOBE \信息\背景\ backgroundDefault.jpg

(其中%SystemFolder%通常是「 C:\ Windows \ System32「),但該文件根本不被複制!

發生了什麼事?


我發現backgroundDefault.jpg文件位於另一個目錄:%SYSTEMROOT%\ Syswow64資料\ OOBE \信息。

但我沒有詳細說明系統(64位)文件夾。我怎樣才能在正確的地方複製文件?

+0

沒有安裝此類組件的條件。 – Luca 2010-06-17 14:01:49

回答

1

首先,關於日誌,您可以要求MSI來創建其操作的日誌文件是這樣的:

msiexec.exe -i my_msi_file.msi -l*vx logfile.txt 

這將創建一個名爲logfile.txt的日誌文件。

其次,這聽起來像是你正在創建一個32位MSI並在64位Windows上運行它。這沒什麼錯,但請注意Windows正在使用file system redirection。 Windows有一個單獨的SystemFolder和HKLM/SOFTWARE密鑰來託管32位應用程序。如果您在HKLM/SOFTWARE的註冊表中查看,您可能會看到一個名爲Wow6432Node的子鍵 - 這是32位應用程序寫入其註冊數據的地方。

+0

文件系統肯定是重定向的(我不知道這個!),但可能甚至是註冊表具有相同的行爲。明天我會檢查確認 – Luca 2010-06-17 16:40:48

+0

有關注冊表重定向器的更多信息:http://msdn.microsoft.com/en-us/library/ms724072(VS.85).aspx – 2010-06-17 17:05:29