方法一:
在打包项目中添加文件msiexec.exe(一般在c:/windows/system32(系统目录中)找到)。
在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninst”.
更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。
方法二:
先生成安装包,记下ProudctCode(选择解决方案资源管理根目录如Setup1,再查看属性标签,不是右键属性),下面用到
用Vs.Net 建立一个新的控制台程序uninst.exe文件。
代码如下:
using System;
namespace uninst
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class UnInstall
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
string sysroot = System.Environment.SystemDirectory;
System.Diagnostics.Process.Start(sysroot + "//msiexec.exe", "/x {850FED90-20D0-4EBA-BEDB-3D9DBA25F6EC} /qr");
}
}
}
编译过后,将生成的uninst.exe文件添加到安装包中,重新生成安装项目。
====================================================================
上面只是较简单的实现了卸载功能,并没有做到任何提示,下面是我自已研究了一个下午的成果。
Uninstall.exe的优化。
以下代码在winxp + vs 2003.net 下通过。
1、新建项目->Visual Basic 项目,选择“空项目”,将名称改为Uninstall
位置我选:D:/MyProjects/Uninstall
2、右击项目->添加->添加模块,输入以下代码保存编译即可。
Module Module1
Private Function Uninstall()
Dim sysroot As String
sysroot = System.Environment.SystemDirectory
System.Diagnostics.Process.Start(sysroot + "//msiexec.exe", "/x {15B69154-A940-4635-8880-2CBD8D32FC0A} /qr").WaitForExit()
End Function
Sub Main()
Dim result As MsgBoxResult
result = MsgBox("是否删除实验室分析流程管理系统?", MsgBoxStyle.OKCancel, "分析流程管理系统")
If result = MsgBoxResult.OK Then
Uninstall()
MsgBox("分析流程管理系统删除成功!", MsgBoxStyle.OKOnly, "分析流程管理系统")
ElseIf result = MsgBoxResult.Cancel Then
Exit Sub
End If
End Sub
End Module
注:
{15B69154-A940-4635-8880-2CBD8D32FC0A}是指你的ProudctCode,具体查看方法请参考上文红字部分。
编译完成后,即可得到名为Uninstall.exe的文件,当然,你可也以根据需要为该文件添加一个漂亮的资源文件。
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1755380