您的位置:首页 > 其它

dotnet程序安装包添加卸载快捷方式

2013-01-23 11:04 489 查看
在做了安装程序后,必然需要一个卸载的快捷方式。

 有两种实现方式,主要都是利用Msiexec命令。

一种是把msiexec.exe文件打包到安装目录中,给它传递产品编号就可以



另一种通过程序调用msiexec传递产品编号。

  卸载其实就是调用Msiexec命令,实现一个小程序。主要代码如下:  

static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
 static void Main(string[] argc)
        {
            Process mysqlre = new Process();
            mysqlre.StartInfo.UseShellExecute = false;
            mysqlre.StartInfo.RedirectStandardInput = true;
            mysqlre.StartInfo.RedirectStandardOutput = true;
            mysqlre.StartInfo.RedirectStandardError = true;
            mysqlre.StartInfo.CreateNoWindow = true;
            mysqlre.StartInfo.FileName = @"msiexec.exe";
            mysqlre.StartInfo.Arguments = " /x{2091B570-AD86-4C20-9E21-912F77EFFCBD}";//产品代码
            mysqlre.Start();
         //   string err = mysqlre.StandardError.ReadToEnd();
            mysqlre.WaitForExit(5000);
         //   err = mysqlre.StandardOutput.ReadToEnd();
          
        }
}
 需要注意的是需要新建一个windows窗体应用程序,把文件Program.cs留下,其他的都删除。如果新建一个控制台程序,则卸载时会出现令人讨厌的黑框,就如同运行cmd命令一样。至于为什么使用windows窗体应用程序不在出现,具体原因目前不知道。

还有一个小问题就是在windows 7系统上快捷方式由于权限问题,导致不能卸载,如果点击程序以管理员身份运行则可以正常卸载。否则弹出msiexec帮助的对话框,给人的感觉好像命令参数有错误一样,具体的弹出框如下:



产品编号,产品升级的编号,windows系统判断是不是同一个产品的标准就是判断这两个编号是不是都不相同。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: