C# 从另一个安装程序中删除一个安装程序

C# 从另一个安装程序中删除一个安装程序,c#,C#,我已经创建了一个自定义的intall dll&一切正常。我只想从当前安装中调用另一个安装程序的卸载方法。执行此操作时,我会收到错误代码1618(表示另一个安装程序已在运行)。但是,当我将同一产品的卸载称为测试项目时,它工作正常。有人可以对此提出解决方案吗。我可以从当前安装程序中卸载另一个应用程序吗?如果此另一个产品是您自己的(因此您可以访问安装程序应该执行的操作),或者您想执行一些不正确的操作,您可以尝试自己删除文件/注册表项/etc,然后在注册表中注销该程序(HKEY|U LOCAL(机器|用

我已经创建了一个自定义的intall dll&一切正常。我只想从当前安装中调用另一个安装程序的卸载方法。执行此操作时,我会收到错误代码1618(表示另一个安装程序已在运行)。但是,当我将同一产品的卸载称为测试项目时,它工作正常。有人可以对此提出解决方案吗。我可以从当前安装程序中卸载另一个应用程序吗?

如果此另一个产品是您自己的(因此您可以访问安装程序应该执行的操作),或者您想执行一些不正确的操作,您可以尝试自己删除文件/注册表项/etc,然后在注册表中注销该程序(
HKEY|U LOCAL(机器|用户)\Software\Microsoft\Windows\CurrentVersion\Uninstall\{program}
)。这并不是最好的主意,但是如果你可以访问安装程序应该做的事情,那么它会对你有用。

AFAIK不支持从另一个安装程序调用安装程序(安装或卸载)。它在早期版本的Windows Installer中受支持,但现在已被弃用,即使如此,我也不确定是否支持卸载其他产品。 现在推荐的方法是使用引导程序检查并安装任何先决条件。从理论上讲,您还应该能够使用自定义引导程序卸载产品,但是编写一个引导程序并不是一个简单的练习。 另外,从用户机器上静默卸载某些东西并不一定是一个好办法。使用VisualStudio2005通用引导程序,您应该能够生成一个引导程序,用于检查是否安装了其他产品并要求用户卸载它