我的软件总更新,所以每次更新后给客户安装,他总是提示有一个旧的版本,让客户自己卸载,客户闲麻烦,所以我想在安装我这个新版本前,自动卸载旧的,不知道旧版本和新版本哪里不一样?版本?不能呀?我该怎么改,才能让他自己卸载?于是我在 安装类里在安装前执行卸载
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
xiezai();
}private void xiezai()
{ string sysroot = System.Environment.CurrentDirectory;
System.Diagnostics.Process.Start(sysroot + "/msiexec.exe", "/x{2EFF8D5E-2E26-4AFC-8FC4-0E2B28B3AE19}");
}可他还是提示有旧版本,然后就没执行这个,什么原因呀?还有什么更好的办法吗?
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
xiezai();
}private void xiezai()
{ string sysroot = System.Environment.CurrentDirectory;
System.Diagnostics.Process.Start(sysroot + "/msiexec.exe", "/x{2EFF8D5E-2E26-4AFC-8FC4-0E2B28B3AE19}");
}可他还是提示有旧版本,然后就没执行这个,什么原因呀?还有什么更好的办法吗?
解决方案 »
- 数值精度与数值转换的问题
- 关于字符串操作
- C# bitmap对象能转换为不同PixelFormat格式的吗
- DataGridView绑定List时,AllowUserToAddRows不起作用?
- 300分求C#设置文件everyone属性代码
- Windows开始菜单点关机选项后,如何增加一项“1分钟后关机”?
- 关于窗体分割后,如何访问控件子窗体的数据问题~~呼唤raining010(黄)继续进来~~
- 如何用c#中的windous程序创建文本编辑器?
- C#访问数据库(SQL)再现问题,请高手指点一下!!!!!!!!!!!!!!!!!!!!!!附原代码!
- C# 4.0 Chart问题,求帮助
- 爱心加油站
- 关于C#读取文本文件问题~在线等,解决立马结贴
可以考虑在安装时候同时安装卸载程序Uninstall.exe
在Uninstall.ini中保存了安装时的操作.
Uninstall.exe撤销这些操作.
当有新的安装的时候首先检测,如果有旧版本,则调用旧版本的Uninstall.exe
完成卸载.最后安装新版本.
有个想法是,每次都用不一样的ProductCode, 然后通过寻找注册表信息来卸载不一样的版本,卸载的动作就放到一个dll里面做。
假设下面这个软件msxml sp2HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F662A8E6-F4DC-41A2-901E-8C11F044BDEC}安装新的软件之前直接 调用系统命令
msiexec /x {F662A8E6-F4DC-41A2-901E-8C11F044BDEC} /qb (/qn) 可以静默卸载关于这方面的问题欢迎和我来讨论