C#创建安装、卸载部署程序
分享3:
需求:对已经开发的应用程序进行安装封装操作,即创建安装、卸载部署程序;
分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包含此软件运行所需的运行环境;
具体操作:
1.在VS2010中新建项目,选择:其他项目类型->安装与部署->安装向导,然后确定;
2.界面默认出现文件系统,分左右两侧;在右侧中点击应用程序文件夹后,右键选择添加文件,将需要打包的执行文件以及相关的组件类库等添加进行;
3.右击左边的“应用程序文件夹”打开属性对话框,将属性中的“defaultlocation”的路径中的“[manufacture]”去掉(不然安装程序默认目录就是c:\programm file\你的用户名\安装解决方案名称)
4.对执行程序增加快捷方式,选中执行程序,右键选择生成快捷方式,可以进行重命名,并将其剪切到左侧的“用户的“程序”菜单”或用户桌面(这样在安装完成后,快捷方式就会在菜单或桌面出现)
5.(重要环节)选择项目名称右键,选择属性;在属性页中,选择“系统必备”,将勾选“创建用于安装系统必备组件的安装程序”;在复选框中选择你必备组件;勾选“从与我的应用程序相同的位置下载系统必备组件”(重要一点:勾选”从与我的应用程序相同的位置下载系统必备组件(D)”,其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件))
到此,基本完成制作,点击“生成->生成解决方案”,即可在Debug中找到setup.exe或者“项目名称.msi”
6.关于“创建卸载功能”,有两种方式如下:
方法一:
A.在添加应用程序时,需要添加一个msiexec.exe(可以重命名为Uninstall.exe),同执行程序一样(这个文件在c:\window\system32文件夹下);
B.(重要环节)选中msiexec.exe,需要给该执行程序设置Aguement属性值输入“/x {ProductCode}”(/x与{ProductCode}间有空格),ProductCode值在项目属性中可以找到(即为该安装程序的注册表号)
这个卸载程序有一个缺点:当制作的安装包电脑系统如果是64位的话,那么如果安装程序完成后,在32位电脑上这个卸载功能的话,就行不通(因为msiexec.exe是64位的)。为解决这个问题,唯有自己创建一个应用程序,直接调用系统中的msiexec.exe。
方法二:
新建一个控制台程序,在Main方法中添加如下代码:string sysroot = System.Environment.SystemDirectory;System.Diagnostics.Process.Start(sysroot+“\\msiexec.exe“,“/x {ProductCode(此值在安装程序项目属性中取得) } /qr”);
点击生成,在bin文件夹中得到.exe文件,将其加入到安装程序项目中的“应用程序中去”(后面操作一样了)。这样就可以直接调用电脑系统中的msiexec.exe程序了。
至此,基本完成安装程序,至于其他设置,可以在属性中设置相关的参数,也可以在视图中自定义安装界面等等。
C#创建安装、卸载部署程序的更多相关文章
- Android 安装 卸载 更新 程序
安装程序的方法: .通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据. 1. String fileName =Environment.getExternalStorage ...
- C# Windows服务创建安装卸载
一.创建Windows服务 使用VS创建一个新的windows服务应用程序 创建完成之后 二.相关配置 修改Service1名称为StartService(可以不改,自行选择) 添加安装程序并修改配置 ...
- MFC安装与部署(程序打包)
(发现csdn传照片实在是太麻烦, 不能够直接拖拽进来;所以我直接使用云笔记生成一张图片 直接完成!) (懒癌晚期-)
- 安装和卸载windows程序
安装windows service通常有两种工具 1.Framework目录下的installutil.exe工具.2.visual studio命令行工具 在这里我要说的是当我们使用的系统是64位的 ...
- android 静默安装 卸载 资料汇总
1. android + eclipse + 后台静默安装(一看就会) 2. 适用于android1.5以下版本apk静默安装 3. error: INSTALL_FAILED_SHARED_USER ...
- ClickOnce部署疑难杂症:更新时部署与应用程序标识不一致问题。要安装此应用程序,请修改此文件的清单版本或卸载之前存在的应用程序。
使用ClickOnce部署winform应用程序.无论是安装或者自动更新都极为方便,但有时候一些疑难杂症也令人头疼 1.注意每次部署完成之后 setup.exe无需覆盖,只需要在Application ...
- C#Windows Service程序的创建安装与卸载
C#Windows Service程序的创建安装与卸载 一.开发环境 操作系统:Windows7x64 sp1 专业版 开发环境:Visual studio 2013 编程语言:C# .NET版本: ...
- 他山之石——vs2013 安装与部署及程序打包
C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio .下载地址: InstallShield 2013 Limited Edi ...
- 【转】.NET 安装和部署(Installer) 如何卸载上一个版本
前言 当使用.NET“安装项目”打包的安装文件,再次安装的时候会弹出如下提示,这个时候会让我们很郁闷,怎样才能自动卸载上一个安装的版本呢?方法很简单,只需简单的两个操作步骤即可解决. 操作步骤 主要由 ...
随机推荐
- 测试 ASP.NET Core API Controller
本文需要您了解ASP.NET Core MVC/Web API, xUnit以及Moq相关知识. 这里有xUnit和Moq的介绍: https://www.cnblogs.com/cgzl/p/917 ...
- 【面试】我是如何在面试别人Spring事务时“套路”对方的
“中国最好面试官” 自从上次写了一篇“[面试]我是如何面试别人List相关知识的,深度有点长文”的文章后,有读者专门加我微信,说我是“中国最好面试官”,这个我可受不起呀. 我只是希望把面试当作是一次交 ...
- 🧬 C# 神经网络计算库和问题求解
Andrew Kirillov 著 Conmajia 译 2019 年 1 月 12 日 原文发表于 CodeProject(2006 年 11 月 19 日),已获作者本人授权. 本文介绍了一个用于 ...
- 关于C# 中的布尔运算符 "&" "|” 与 其类似的条件布尔运算符 "&&" "||" 区别说明。
运算符使用说明如下: 分隔符 ———————————————————————————— 分隔符 ———————————————————————————— 上述两个运算符的结果与&和 | 完全 ...
- c# Base64解密加密
private static string base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ...
- 在表单提交之前做校验-利用jQuery的submit方法
点击表单中的提交按钮,默认就会提交表单,如果要在表单提交之前做一些校验,那么就可以用jQuery的submit方法. 也就是jQuery的submit的方法执行顺序,在表单的提交之前.用法如下: $( ...
- .net基础系列
这里汇总了.net基础的相关文章,方便查阅! .net基础 委托(1)认识委托 委托(2).net 1.x中的委托 委托(3).net 2.0中的委托 委托(4).net 3.5中的委托 委托(5)委 ...
- Yii2设计模式——Yii2中用到哪些设计模式?
"Yii2设计模式"包含了两个方面的内容:1.设计模式,2.Yii2框架. <设计模式>一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语 ...
- 服务器三:多线程epoll
#include <fcntl.h> #include <sys/socket.h> #include <netinet/in.h> #include <ar ...
- Mac Java Idea 下面Git配置简要教程
Mac Java Idea 配置简要教程(Sunplay) 1.找到git路径 终端输入:which git 2.在idea的设置git路径 3.测试Git的效果 测试Git成功的效果