无法静默安装.msi包

时间:2009-10-06 14:00:32

标签: .net windows-installer vsto

我有一个Office 2007加载项(使用Visual Studio 2005 Tools for Office Second Edition开发),它已使用Visual Studio 2005中的安装项目打包到.msi文件中

问题是,当用户使用Next-> Next-> Finish自行安装软件包时,一切正常,但是当我尝试在所有机器上使用域管理员静默安装它时(在这种情况下,我们有数百个用户)然后它无法正常工作(虽然它正常安装)以下是用于静默安装.msi包的命令

msiexec /fa "solution.msi" ALLUSERS=1 /qb!

This image显示如何在安装时填充系统注册表以将我们的解决方案连接到Office2007

可能有任何以前版本的解决方案可能与我们的静默安装相冲突吗?或者可能还有其他问题?

当我以静默方式安装时,可能会出现与CASPOL安全相关的任何问题吗?

2 个答案:

答案 0 :(得分:3)

有几点需要注意:

首先,您提供的命令行不是用于安装;如果已经安装了应用程序,它将重新安装。 “/ q​​b!”选项使“下一步”和“完成”对话框显示出来。并且“ALLUSERS = 1”选项告诉它在所有用户的开始菜单中放置快捷方式(但不会改变它安装注册表键的方式 - 更多内容会在一秒内完成。)我建议这样的事情:

msiexec /i "solution.msi" ALLUSERS=1 /qn

其次,您对注册表的快照显示应用程序需要HKEY_CURRENT_USER条目。顾名思义,这些对于登录到计算机的每个用户是独立的。 (这解释了为什么如果用户自己安装它就可以工作。)如果您将其安装为管理员帐户,那么该帐户将具有所需的注册表条目 - 但不一定是登录的任何其他帐户。您的MSI必须专门为每个登录的新用户推送HKCU条目。

有关如何设计MSI以便为您提供HKCU注册表条目的提示,请参阅以下内容之一:

答案 1 :(得分:1)

我的猜测(因为我无法访问您的图片)是,当您以管理员身份安装时,您安装的文件无法正确设置其他“普通”用户的权限。

因此,您可能需要在文件上设置对* \ users的读取和/或写入权限。