我发现我的电脑上有很多组件(EXE/DLL、.NET 程序集和注册表项),都是 VS2012 上次安装和卸载时遗留的。我想使用 MSI 文件彻底删除它们,这些文件仍在我的程序包缓存中,但msiexec /x product.msi
只给我This action is only valid for products that are installed
,大概是因为主 VS2012 安装程序从安装程序数据中删除了其产品代码,而 MSI 认为该产品未安装。
是否可以使用msiexec
命令行开关绕过此验证检查?或者是否有工具可以扫描 MSI 并删除其安装的所有内容?我查看了,msizap
但它只会删除产品的安装程序数据,而不会删除其安装的所有垃圾。
TL;DR: 是否有一个工具可以做到:
for item in product.msi do delete $item
答案1
由于您已使用卸载程序卸载过该产品一次,因此第二次卸载可能不会有更好的效果。此外,大多数这些残留物可能是在安装后使用该产品时创建的。
最好重新安装该产品,然后使用卸载程序,例如 Revo Uninstaller 免费软件 之后卸载并清理。遗憾的是,安装和卸载 VS 不是一个快速的操作。
根据我的经验,如果您安装了多个 Visual Studio 版本,使用 Revo 可能会清理太多内容,因为某些组件可能为多个版本所共用。
如果拥有多个 VS 版本,我的建议是接受一些残留文件的存在,并仅使用官方卸载程序。您可以放心地验证 VS2012 的安装文件夹是否已清除,但不要管其他组件。