我正在尝试使用VS2005 Installer Project在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 \ info \ backgrounds \ backgroundDefault.jpg

(其中%SystemFolder%通常是“ C:\ Windows \ System32”),但是根本不会复制该文件!!

这是怎么回事?


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

但是我没有指定任何有关System(64位)文件夹的信息。如何在正确的位置复制文件?

有帮助吗?

解决方案

首先,关于日志记录,您可以请求MSI创建其操作的日志文件,如下所示: 通用标签

这将创建一个名为logfile.txt的日志文件。

第二,听起来您正在创建32位MSI并在64位Windows中运行它。这样做没有任何问题,但是请注意Windows正在使用文件系统重定向。Windows具有单独的SystemFolder和HKLM / SOFTWARE密钥来托管32位应用程序。如果您在HKLM / SOFTWARE的注册表中查看,您可能会看到一个名为Wow6432Node的子项,这是32位应用程序写入其注册表数据的地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top