如何使用C#代码中的产品代码或通过命令行卸载程序

问题描述

我有一个适用于VS 2019的安装程序项目,并且有可用的产品代码+更新代码,因此在我的应用程序中,我正在使用它以编程方式卸载应用程序。在我所看到的所有地方,这似乎都是调用msiexec并提供产品代码的正确方法,但我所得到的只是一个弹出窗口,其中包含针对msiexec和错误代码1603的信息样式输出。即使自己通过powershell运行它,也可以完成相同的操作这不再是通过命令行卸载某些东西的正确方法吗?我很乐意在命令行中使用它,并且可以轻松地更新代码,但目前没有任何操作。

参考了其他一些论坛帖子,codeproject网站解决方案,也许此信息只是过时或不再准确?最近在这里检查过How to uninstall MSI using its Product Code in c#

        Process process = new Process();
        process.StartInfo.FileName = "MsiExec.exe";
        process.StartInfo.Arguments = " /x " + productCode + " /Qn";
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.UseShellExecute = false;
        process.Start();

        string output = process.StandardOutput.ReadToEnd();
        string err = process.StandardError.ReadToEnd();

        Debug.WriteLine(output);
        Debug.WriteLine(err);

        process.WaitForExit();
        return (process.ExitCode == 0) ? true : false; //exit code 1603,popup appears from Start()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)