【问题标题】:Uninstall C# windows application from self从自己卸载 C# windows 应用程序
【发布时间】:2010-11-22 20:14:54
【问题描述】:

当前正在执行的 C# 应用程序如何自行卸载?

我只是想做到对用户友好。这只是一个小程序,如果他们安装它并且不喜欢它,我不想强​​迫他们经历添加/删除的麻烦,只需快速单击按钮即可。它有一个(你确定)对话来阻止事故,但除此之外,我认为它会很好。

很抱歉没有指定安装软件,我使用的是 Visual Studio 2008 及其随附的发布功能,我已检查为 Windows Installer 3.1。

Process.Start 给我编译错误,并且没有被 VS 识别。试过系统。也是,但我正在使用系统,所以无论如何它都不重要

【问题讨论】:

  • 我认为他希望他的应用自行卸载?
  • Process.Start 在 System.Diagnostics 命名空间中
  • 好主意;如果应用程序可以选择从内部卸载,那就太好了。 :-)

标签: c# winforms uninstallation


【解决方案1】:

既然你说卸载,我不得不假设这意味着你首先使用了安装程序来安装你的程序。

还假设您使用了 Windows Installer (MSI),因为您没有另外指定。如果是这样,这很简单:

1) 在您的按钮单击处理程序中,使用 Process.Start 运行此命令: msiexec.exe /x [你的产品代码]

http://msdn.microsoft.com/en-us/library/aa367988(VS.85).aspx

2) 立即退出程序(Environment.Exit 或任何其他机制)

也就是说,我不得不质疑您为什么需要这样做,因为这是一种非常不寻常的行为。

【讨论】:

  • 我需要这样做。我有一个非常重要的更新,它极大地改进了功能、速度和易用性,还修复了代码中可能导致多个系统文件损坏的致命错误,但客户拒绝停止使用坏版本。所以,我要强迫他们这样做。不明白为什么需要卸载某些东西是在这种情况下继续使用它的一个非常愚蠢的理由。
  • 如何找到我的“产品代码”?您指的是 GUID 吗?
  • 如果它是您的安装程序,您应该知道它是什么,因为它是您项目属性的一部分。如果不是您的安装程序,请使用 orca(谷歌搜索“windows installer orca”)查找。
  • 这是我自己的安装程序,它是一个 clickonce 应用程序,但它在哪里?它在 AssemblyInfo.cs 中吗?在那里我看到:// If the project will be exposed to COM, the following GUID will be used as ID of the types library [assembly: Guid("44993dbc-2e7e-1244-b7e3-da66c80a1121")]
  • 您不能在 ClickOnce 应用程序上使用 msiexec。
【解决方案2】:

首先,它是如何安装自身的?

如果您的问题是如何让 C# 应用程序自行删除,请参阅 here 等。

【讨论】:

    【解决方案3】:

    这不是一个坏主意,但它非常不标准;即使是 ClickOnce 应用程序也无法自行卸载,添加/删除程序工具确实是它应有的位置。

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2011-08-06
      • 2012-04-13
      • 2010-10-21
      • 1970-01-01
      相关资源
      最近更新 更多