项目使用msiexec.exe作为卸载程序,卸载完成后,安装目录下还有残留文件,我是想把整个安装目录都卸掉,请问有没有方法可以做到呢?或者如何自己定制卸载程序呢?
解决方案 »
- DXF文件解析,坐标怎么换算?
- 各位大哥帮我看看怎么就堆栈溢出了呢?? 顺便讲讲C#中属性的get,set是怎么走的..
- C/S程序,socket速度问题
- 用C#做邮件收发
- 哪位大哥有nurbs曲线的c#代码?
- ◆如何给datagrid中当前记录的某字段赋值?◆
- 怎样把源数据的列名 以别名映射到 datagrid 里?
- 请问高手C++里的unsigned char *Image 数据类型 在C#里应该怎么调用?在C#里对应什么数据类型?
- 怎样控制不让MDI子窗体拖动?
- 将二位数组的数据导入到excle中
- 如何提取listview中所选择项的子项值,并根据子项值更新数据库
- 求助:datagridview如何增加一列复选框列?
方法二:1、先部署程序,记下程序的ProductCode 的值 ,例如:50026DC8-69DC-4B92-89CC-3D10AD4CA8C4
(选择解决方案资源管理器根目录如setup,再查看属性标签,不是右键中的属性)
2、建立1个新的winFrom程序
3、删除自动生成的form1。
4、添加个类,写入下面代码
using System;namespace uninst
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class UnInstall
{
[STAThread]
static void Main(string[] args)
{
string sysroot = System.Environment.SystemDirectory;
System.Diagnostics.Process.Start(sysroot + "\\msiexec.exe", "/x {50026DC8-69DC-4B92-89CC-3D10AD4CA8C4} /qr");
//{50026DC8-69DC-4B92-89CC-3D10AD4CA8C4} 就是上诉的ProductCode
}
}
}
5、生成新的控制台程序
6、再把这个新的卸载程序添加到你的安装包里就行了。
方法三:1.用VS.net建立一个新的控制台程序uninst.exe文件,
'power by: landlordh
'for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then
myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB0779559}") '改为自己的ProductCode
End If
myProcess.Close()
End Sub
End Module
2.将控制台程序BIN目录的exe文件加入到打包程序文件中
3.在程序组创建uninst.exe的快捷方式