夜的第七章

WEB开发个人博客。

« c# winform实现拖拽控四叶草便签本 V2.1发布 »

C#卸载程序

安装程序在vs.net是自带的,尤其是在.net2005中,非常方便,界面也比2003美观了许多。但是仍然存在的不方便的地方就是没有自带卸载程序,如果要求安装的人都从控制面板中去卸载,也太费劲了,所以今天上网找了找例子,发现了一些,所以一一记述下来。 

方法一:利用msiexec.exe文件(一般在\winnt\system32目录下)。将该文件集成到安装文件目录中,然后选择安装项目的工程属性,找到Product Code一览,比如ProductCode {5284694C-24C1-4FCF-A705-D4B9A0081274},将这个{5284694C-24C1-4FCF-A705-D4B9A0081274}copy下来,然后在开始菜单中建立msiexec.exe的快捷方式,起个名字叫卸载,然后选择属性,在Argumengs一览中填写/x空格,然后把那个copy下来的ProductCode 复制到这里,就OK了,然后编译生成安装文件,试着安装一下,卸载程序就在开始菜单中了。用这个的好处呢就是方便,但是由于copy了一个和操作系统相关的msiexec.exe文件,所以仍然是不太合适。 
方法二: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的快捷方式 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。



[2007 - 2011] © Leadnt.com