Windows Server 2008 / Windows 7(x64)上的MSI文件/注册表故障

时间:2010-06-17 13:59:51

标签: deployment installer windows-installer windows-7-x64

我正在尝试使用VS2005安装程序项目在Windows Server 2008(SP2 x64)和Windows 7(x64)上部署应用程序。 MSI版本(我认为)它是2.0。

除了在安装机器上没有复制某些注册表项和某些文件外,一切正常。 MSI系统不会通知任何内容(我不知道MSI是否记录其操作)。

我的MSI安装程序项目与这些新操作系统之间是否存在不兼容性?在我看来,操作系统可以保护自己在某些方面进行修改。

例如,我正在尝试设置注册表项:

  

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ WinLogon \ SpecialAccounts \ UserList \ User

但它没有创建。在同一个安装程序中,还有许多其他密钥,这些密钥按预期创建(就像以前在Windows XP和Windows Server 2003上一样)。

为了提供另一个例子,我正在尝试安装文件

  

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

(%SystemFolder%通常是“C:\ Windows \ System32”),但文件根本没有被复制!!!

发生了什么事?


我发现 backgroundDefault.jpg 文件位于另一个目录中:%SystemRoot%\ SysWOW64 \ oobe \ info。

但是我没有对系统(64位)文件夹做任何指定。如何在正确的位置复制文件?

1 个答案:

答案 0 :(得分: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位应用程序写入其注册表数据的地方。