.net - 无法静默安装 .msi 软件包

标签 .net windows-installer vsto

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

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

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

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

该解决方案的任何早期版本是否可能与我们的静默安装发生冲突?或者可能还有其他问题?

是否存在任何与 CASPOL 安全相关的问题,当我静默安装时可能会失败?

最佳答案

需要注意的几点:

首先,您给出的命令行不是用于安装的;如果该应用程序已安装,它将重新安装。 “/qb!”选项使“下一步”和“完成”对话框显示。 “ALLUSERS=1”选项告诉它在所有用户的开始菜单中放置快捷方式(但不会改变它安装注册表项的方式——稍后会详细介绍。)我会推荐这样的东西:

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

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

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

关于.net - 无法静默安装 .msi 软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525783/

相关文章:

c# - 什么是NullReferenceException,如何解决?

node.js - 带有 NodeJS 的 IExpress 安装后批处理没有立即找到 NPM

c++ - 我可以通过 WiX 的自定义操作访问 .wxl 本地化文件中的字符串吗?

powershell - 卸载脚本未正确执行

deployment - 如何使用Visual Studio 2017部署Office VSTO加载项

c# - 如何在 C# 中打开 Excel 文件?

c# - 如何显示 List<MyObject> 中的多选列表

c# - Assembly.GetExportedTypes 与 GetTypes

.net - 从 IValueConverter 获取对 ViewModel 的引用

ms-word - x64 Word 2010 使用 WiX 加载项注册