使用 msiexec 卸载特定功能

Posted

技术标签:

【中文标题】使用 msiexec 卸载特定功能【英文标题】:Uninstalling a particular feature using msiexec 【发布时间】:2012-05-02 12:39:18 【问题描述】:

我安装了一个具有两个功能(FirstFeature 和 SecondFeature)的测试应用程序。我只想从应用程序中删除一项功能(SecondFeature)。我尝试在命令行中使用 REMOVE 属性。这是用于删除 SecondFeature 的命令。

msiexec /x RemoveFeatures.msi REMOVE="SecondFeature" /L*V log.LOG

但它正在卸载整个应用程序。日志文件显示默认添加 REMOVE=ALL。这是日志文件的详细信息。

MSI (s) (24:B4) [17:39:05:231]:命令行:REMOVE=SecondFeature REMOVE=ALL

MSI (s) (24:B4) [17:39:05:231]:属性更改:添加 REMOVE 属性。它的值为“SecondFeature”。

MSI (s) (24:B4) [17:39:05:231]:属性更改:正在修改 REMOVE 属性。它的当前值为“SecondFeature”。它的新值:'ALL'。

表示在卸载过程中 REMOVE 属性值被覆盖。我是否需要设置任何其他属性来删除特定功能?

感谢任何帮助。提前谢谢!!!

【问题讨论】:

【参考方案1】:

如您所述,/x 用于卸载。 完成(全部)卸载。

尽管您想要执行删除某个功能的安装可能会违反直觉。

msiexec /i RemoveFeatures.msi REMOVE="SecondFeature" /L*V log.LOG

您可能还希望添加 /qb 或 /qn 以使其非交互/静默。

【讨论】:

RemovesFeatures.msi 是一个非常有代表性的包名吗?这让我很困惑。这里使用的是哪个 MSI 软件包?包含该功能的那个,还是其他的? 我只是使用了原始海报使用的MSI名称。如果对您有帮助,请将 SomeProduct.msi 放在那里。

以上是关于使用 msiexec 卸载特定功能的主要内容,如果未能解决你的问题,请参考以下文章

避免 MsiExec 卸载中的确认框

MsiExec.exe产品ID卸载[重复]

使用Powershell实现自动化安装/卸载程序

从 C++ 运行 MsiExec.exe?视窗

从 powershell 卸载产品

Powershell:使用动态创建的参数运行 msiexec