我正在尝试使用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位)文件夹做任何指定。如何在正确的位置复制文件?
答案 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位应用程序写入其注册表数据的地方。