我打算使用c#从控制面板卸载.exe文件。
我可以删除.msi文件,但在尝试删除.exe文件时遇到问题。
任何人都可以建议是否有任何不同的方法来删除.exe文件。
提前致谢
答案 0 :(得分:1)
首先,您可能并不是要“删除”.exe文件,只需通过System.IO.File.Delete()
调用将其从硬盘驱动器中删除即可。您可能希望为计算机上安装的每个程序调用适当的卸载程序,在这种情况下,您将按照指示in this answer在注册表中找到适当的目录和路径。
答案 1 :(得分:0)
您可以使用msiexec.exe来管理.msi和.exe文件
Firstable,我们将使用System.Diagnostics,因此您必须添加此内容。
using System.Diagnostics;
安装没有用户界面的软件的代码是:
private void installSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/i \"C:\\Application.msi\"/qn";
p.Start();
}
卸载没有用户界面的软件的代码是:
private void uninstallSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/x \"C:\\Application.msi\"/qn";
p.Start();
}
修复没有用户界面的软件的代码是:
private void repairSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/f \"C:\\Application.msi\"/qn";
p.Start();
}
资源:http://www.codeproject.com/Articles/20059/C-Installing-and-uninstalling-software
要将其与.exe文件一起使用,只需根据应用程序的产品代码更改.msi文件的路径
private void uninstallSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/x "ProductCode" /qn";
p.Start();
}
要详细了解如何获取应用程序的产品代码,您可以看到以下答案:How to find the upgrade code & productCode of an installed application in Win 7