最近刚用VS2005进行开发,在程序完成,进行打包发布时,突然发现用VS2005打包时出现了一个问题。
先来看看VS2003时的做法:(两种做法皆来源于网络)
VS2003打包時加入卸载功能:
方法一:
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下,用方法一是行不通的。出现问题如图:
程序生成时,会出现如图所示错误。(不知道为什么VS2003中可以,VS2005却不可以,不知哪位大侠可以告知)。
所以VS2005中,只能用第二种方法来添加卸载的功能了。
把方法二中步骤二的代码改写成C#如下:
static void Main(string[] args)
{
System.Diagnostics.Process.Start("msiexec", "/X{460247B2-5FF0-4AF7-B4BC-B8BA3025231B}");
}
用步骤二,顺利进行打包OK. :)
中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
C# DataTable 转 List(大家进来讨论讨论)
CSS3圆角气泡框,评论对话框
WinForm 换行问题 textbox (转)
Nhibernate 多对多级联删除
JS、C# 去除html标签
Nhibernate 多对多级联更新
Ext.Ajax.request()方法和FormPanel.getForm().submit()方法,都返回success()方法的差异
ExtJs 4.2.1 报错:Uncaught TypeError: Cannot call method 'getItems' of null
- 最新文章
-
Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
Atitit.php opcode虚拟机指令集 分类以及详细解释
Atitit.php opcode虚拟机指令集 分类以及详细解释
Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异
Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异
Atitit。sql2016标准化的规划方案 v3 q2a
Atitit。sql2016标准化的规划方案 v3 q2a
atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js
atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js
Atitit。Tree文件解析器的原理流程与设计实现 java c# php js