解决方案 »

  1.   


    系统的 msiexec.exe ,是移除文件,不会查询进程的。
      

  2.   

    加参数试试
    下面是msiexec.exe的显示选项
    /quiet
    安静模式,无用户交互
    /passive
    无人参与模式 - 只显示进度栏
    /q[n|b|r|f]
    设置用户界面级别
    n - 无用户界面
    b - 基本界面
    r - 精简界面
    f - 完整界面(默认值)把你的卸载程序的改成msiexec.exe /x /qb [.msi路径|ProductCode] 
      

  3.   

    Process[] processes = Process.GetProcessesByName(“主程序.exe", ""));
                            if (processes.Length > 0)
                            {//程序已经在运行
                                foreach (Process process in processes)
                                {
                                    process.Kill();
                                }
                            }
      

  4.   

    你是用什么工具制作安装包的啊,主流的工具 Wix, InstallShield 默认都带着个功能了,完全不需要操心。