Windows installer 当高级安装程序尝试安装已安装在Windows中的程序时,如何选择默认选项?

Windows installer 当高级安装程序尝试安装已安装在Windows中的程序时,如何选择默认选项?,windows-installer,advanced-installer,Windows Installer,Advanced Installer,我有一个“setup.exe”安装程序,我将在自定义Winform程序的非UI(静默)模型中运行它 在普通用户界面模式下,如果安装了相同版本的程序,界面将显示3个选项:“修改”、“修复”和“删除”。但是我不知道安装程序在静默模式下会做什么,以及如何选择默认选项?维护操作:我不是100%确定你在问什么,但让我们试试。这些选项“修改”、“修复”和“删除”适用于已安装的产品。它们统称为“维护操作” 修改指选择要安装或卸载的安装功能(字典、SDK、帮助文档等)。换句话说,你可以在MSI中添加或删除被称为

我有一个“setup.exe”安装程序,我将在自定义Winform程序的非UI(静默)模型中运行它

在普通用户界面模式下,如果安装了相同版本的程序,界面将显示3个选项:“修改”、“修复”和“删除”。但是我不知道安装程序在静默模式下会做什么,以及如何选择默认选项?

维护操作:我不是100%确定你在问什么,但让我们试试。这些选项“
修改”、“修复”和“
删除”适用于已安装的产品。它们统称为“维护操作”

修改指选择要安装或卸载的安装功能(字典、SDK、帮助文档等)。换句话说,你可以在MSI中添加或删除被称为功能的部分设置(参见下面的信息和链接)修复本质上是重新复制最初再次安装的文件和设置(具体行为可以调整,它可能只恢复丢失的文件或强制覆盖所有内容)删除将卸载该产品


功能:因此上述情况指的是您的产品已安装时的情况。然后您可以修复、删除或修改。但是,还有原始安装,您可以控制在这种安装过程中安装了哪些功能

以下是MSI的屏幕截图,显示了可供选择安装的功能:

要控制静默安装时安装的功能,可以通过命令行使用属性(也可以在转换中设置):

快速参数解释

/I = run installation sequence
/L*V = "C:\Test.log"= verbose logging
ADDLOCAL="FeatureName,AnotherFeatureName" = Install these features locally 
/QN = run completely silently
有一系列与相关的属性,如删除、播发、重新安装,但大多数情况下,ADDLOCAL足以选择要安装的功能


以上截图来自superuser.com上我的一个旧答案:。它包含了一些关于特性和静默安装的更详细的解释


这里还有一个答案,描述了命令行和转换的安装和使用。这是相当详细和过分的,但这里有一个链接:(注意,这个答案在写作时出现了一个奇怪的转折点,因此只有上半部分适用于你的主题-后半部分通常成为MSI问题的一个奇怪的讨论)。

总的问题是,再次运行安装程序和MSI不会做任何有用的事情,所以不清楚你想要实现什么

如果你想卸载,你就不会再运行MSI,你只需要卸载它

如果要修复已安装的产品,则不会再次运行它。为什么它需要修理?在任何情况下,它都将基于快捷恢复操作进行修复,因此它似乎没有什么用处

如果要添加带有修改的功能,则通常在UI模式下运行此操作以选择功能


所以我的问题是:你想解决的实际问题是什么?似乎没有任何迹象表明您正在尝试实现什么,您正在进行的静默安装基本上除了默认维护模式(可能是修复)之外什么都不做

非常感谢。这是你需要的本地概念吗?不,但你给了我一些理想的。听说我找到了一本全面的指南。我想将下载和安装功能集成到winform程序中,并在下载完成后以静默模式启动安装过程。因此,如果用户安装了我的程序,我必须在安装之前选择一个默认参数
/I = run installation sequence
/L*V = "C:\Test.log"= verbose logging
ADDLOCAL="FeatureName,AnotherFeatureName" = Install these features locally 
/QN = run completely silently