如何以编程方式卸载Windows中的应用程序?

时间:2010-10-13 09:24:25

标签: c# windows uninstall

我们正在发布我们的应用程序的新版本,我们希望它能够从客户端的计算机上卸载以前安装的版本。

我们怎么能这样做?

编辑:我正在使用Visual Studio中的部署项目安装此应用程序(以及之前的版本),因此我假设它是Windows Installer。

非常感谢!

4 个答案:

答案 0 :(得分:5)

Visual Studio中的Deployement Project具有内置功能,可以删除应用程序的先前版本。

检查Deployement Project Properties中的“RemovePreviousVersions”属性。

http://msdn.microsoft.com/library/y63fxdw6.aspx

修改

来自MSDN的

  

安装程序检查UpgradeCode和   ProductCode属性确定   是否应该是早期版本   除去。 UpgradeCode必须是   两个版本相同;该   ProductCode必须不同。

答案 1 :(得分:4)

如果您的发行版使用批处理或其他自动部署工具,则可以使用以下命令行轻松卸载MSI产品:

 msiexec [/uninstall | /x] [Product.msi | ProductCode]

答案 2 :(得分:1)

Microsoft Installer(* .msi)格式支持您想要做的事情,遗憾的是Visual Studio仅提供有限的自定义,并且旨在用于基本项目。

关于这个话题有很多资源,还有很多人提出类似的问题。我最好的建议是花一些时间研究MSDN文档。

...

<强>更新

行。在花了30分钟阅读一些文章之后,我认为可以使用您使用新安装程序打包的自定义操作。

关注creating a Custom Action上的这篇MSDN文章。它涉及创建一个新的类库,添加System.Configuration.Install.Installer类,将其作为输出添加到安装项目,然后然后将其选择为自定义操作。

要查看自定义操作标签,请右键点击安装项目,然后选择查看&gt;自定义操作。

从这里开始:您需要编写代码以删除安装目录和AppData配置文件。有关如何设置Custom Action Data的文章可能会有所帮助。

祝你好运。

HTH,

丹尼斯

答案 3 :(得分:0)

如果你编程,那么这是一个简单的反向批次 或者您可以使用某些安装程序/卸载程序构建器,如NSIS