导航

VS2005打包并加入卸载功能的两种方法

Posted on 2011-03-12 16:30  NCUT蓝色理想  阅读(1086)  评论(0编辑  收藏  举报

打包时加入卸载功能:

方法一:
1.在打包项目中添加文件msiexec.exe(一般可在c:\windows\system32\下找到)
2.在文件系统视图中选择应用程序活页夹,在msiexec.exe上按右键,选择创建快捷方式,重命名快捷方式为”卸载”.
3.更改此快捷方式的Arguments 为”/x {产品id}”,产品id的值为打包项目的ProductCode属性值.

方法二:(推荐)
1.先生成安装包,记下ProductCode,下面要用到
2.用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

3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷方式

在VS2003时,本人一直是用方法一进行打包,但是在VS2005下,用方法一是行不通的。出现问题如图:

 (这里原来有一个图片,应该是无法找到msiexec.exe文件,并且在msiexec.exe下面画了一条红色波浪线)

程序生成时,会出现如图所示错误。(不知道为什么VS2003中可以,VS2005却不可以,不知哪位大侠可以告知)。

所以VS2005中,只能用第二种方法来添加卸载的功能了。
把方法二中步骤二的代码改写成C#如下:

static void Main(string[] args)
{
     System.Diagnostics.Process.Start(“msiexec”, “/X{460247B2-5FF0-4AF7-B4BC-B8BA3025231B}”);
}

用步骤二,顺利进行打包OK. :)