从注册表中卸载字符串始终相同?

时间:2013-02-09 05:58:48

标签: c# command-line registry uninstall uninstallstring

我在这里需要一点保证。我正在创建一个基本的C#程序,除其他外,将卸载并重新安装最新版本的程序(我无法将此功能构建到程序本身)。我这样做的方式是:

MsiExec.exe /X{[UninstallString]} /passive

在命令提示符进程中。我有几个问题:

  1. 显然你不知道程序的历史(我不是要告诉你真相),但是每个版本的卸载字符串通常都是一样的吗?它改变了吗?
  2. 有没有可能的方法,uninstallstring可能会意外地成为另一台计算机上的另一个程序的字符串?我不想卸载任何其他内容。
  3. 基本上我只是想知道这是否安全。如果没有,或者如果有更好的方法以编程方式执行此操作,请告诉我们!谢谢!

1 个答案:

答案 0 :(得分:1)

"To uninstall a product";您可以指定ProductCode,根据定义,它是全局唯一的。所以你不会卸载任何其他产品。您还可以指定msi文件名,但必须更加小心,因为不同的产品可能会获得相同的文件名。因此,使用ProductCode是实现此目的的最佳方式。

另见What are Upgrade, Product and Package Codes used for?