WinForm程序打包说明
如果使用的是VS2013需要下载并安装
Microsoft Visual Studio 2013 Installer Projects
下载地址:https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
以VS2010为例
一、 在已有Winform项目的解决方案下,新建安装项目

二、 右键--->新建的项目,选择如下

会看到如下页面

三、 添加输出项目或程序集。
1. 添加输出项目,右键应用程序文件夹->选择项目输出。会出现下界面。在项目中选择你的项目。


2.如果你需要添加的是一些DLL或其他文件可以通过,应用程序文件夹->选择文件、程序集、文件夹等进行添加。
四、 为程序添加快捷方式
右击输出活动或者你要运行的exe文件

然后将这快捷键复制到“用户程序文件夹或者用户桌面”就能在程序文件夹或桌面上创建你的快捷方式了。
五、 为程序设置存放配置文件
在“应用程序文件夹”下,新建Config文件夹用于放置配置文件


注意,Config文件夹下的配置文件路径如果设置的是本地,本地可以正常运行,但是团队其他成员获取运行会报错。
正确做法是:将配置文件放置到当前项目之中,然后配置前往项目中获取

六、 下面介绍“用户程序文件夹”这个其实就是你点击开始按钮出现的那些文件夹如图。所有我一般建议在这里创建一个属于你自己程序的文件夹

步骤:
User's Programs Menu(用户桌面)也就是电脑开始菜单
下新建一个文件夹放置 程序客户端和卸载端


七、 右键项目点击生成就能生成你需要的安装文件了。

设置安装路径
[ProgramFilesFolder][Manufacturer]\[ProductName] 这个有可能在64位机器中会有问题
默认如下图

下面是自定义,设置窗体的安装路径


设置完,查看效果如下

八、 一个程序只能安装不能卸载,那是个让人抓狂的事情,下面我们可以为打包程序添加一个卸载快捷方式。
1、如图所示选择文件
添加C:\WINDOWS\system32\msiexec.exe这个文件。根据第四步的方式添加快捷键。一般会将快捷方式放在用户的程序菜单中。

2、选择快捷方式按F4修改属性

其中的Arguments 为产品的 /x"ProductCode"。
3、其中ProductCode是在这里的。选择你创建的项目。按F4就可以看到它响应的属性了。
其中你可以修改其中你需要修改的值。
其中ProductCode就是卸载是需要的值。

九、 有些应用程序需要在安装时添加一些自定义操作。
1、你新建一个类库。然后添加一个安装程序类。

2、在安装程序类中我们就可以进行自己的操作了。通过重写方法:
publicoverridevoid Install(System.Collections.IDictionary stateSaver)
和publicoverridevoid Uninstall(IDictionary savedState)
a) 其中接受安装时传过来的数据用
this.Context.Parameters["ed1"];其中ed1为参数明名称
3、添加配置页面
a)你可以用这里到


这里添加你需要的显示页面。是通过右击添加对话框。进行添加页面。

选择自己需要的界面:
b)配置参数,这些参数可以在我们刚才新建的安装类中获得。操作如下:
打开我们新建的界面属性页面
c)

这里配置参数名称及默认值。
4、添加用户自定义操作。
a)

选择自定义操作。
B)然后右击安装添加你的应用程序

C)然后书写你要转递的参数

其中CustomActionData为你要传递的参数格式为:/接受参数名=[安装信息中的一些信息的名称]如:上条中c)中画红线的部分。
WinForm程序打包说明的更多相关文章
- VS2013 Winform程序打包部署 InstallShield2015LimitedEdition
VS2013 Winform程序打包部署 VS2013默认是没有安装打包程序的,需要手动安装,我安装的是 InstallShield2015LimitedEdition. 1.点击解决方案,右键,选择 ...
- WinForm程序打包工具InnoSetup使用说明图文教程
WinForm程序打包工具InnoSetup使用说明图文教程 WinForm程序开发测试好了,如果将Debug/Release里面的文件发给客户使用,会让客户觉得你不够专业,但是使用VS自带的打包工具 ...
- 用installshield2013 将winform程序打包成exe执行程序
前期准备工作 1,一个已经测试通过的winform程序 2,安装好的installshield2013插件 ps:一般VS都没有安装此插件,需要自己去下载 打包步骤 1,新建一个打包程序 ps:如 ...
- WinForm程序打包教程
准备工作 1. 编写完成的WinForm程序 2. 安装部署项 VS2010中有一个自带的安装部署项目,叫:Visual Studio Installer ,通常称为:setup项目,是一个用于自定义 ...
- Winform 程序打包及安装
前言 近期被公司外派到驻空调厂的项目组,支援一个TCP相关的程序对接.主要是做智能门禁系统,然后主要是统计出实时的进出人数. 我这边能作为服务端,门禁设备作为客户端,整个流程并不算复杂,根据协议来写, ...
- winform程序打包成exe文件
拿到一个实现功能的winform小程序,如何利用NSIS工具制作安装包? 1.NSIS工具下载地址 点我下载 2.启动NSIS工具,如图点击 3.选择"使用脚本向导创建新的脚本文件" ...
- [转]VS2010 (C#)winform程序打包发布图解
1.新建一个Windows窗体应用程序,例如项目名为monitor,功能略.新建的时候不要忘了创建解决方案. 2.在monitor解决方案上“右击”—— “添加”——“新建项目”,选择“其他类型项目” ...
- WinForm开发(6)——C#/winform程序打包部署时,如何把SQL数据库一起打包进去
打包数据库到安装程序中 方法1. 备份/恢复先备份数据库:backup database 数据库 to disk='c:\备份.bak' 将备份文件打包到安装程序中. 在第一次运行程序的时候,进行数据 ...
- C# Winform程序打包
1.新建一个安装项目,起名“Setup3” 2.点击应用程序文件夹 3.在右侧右键点击添加文件 注意:是Debug文件夹下所有程序 接着在添加你的应用程序项目的时候,多添加一个msiexec.exe进 ...
随机推荐
- 湖大OJ-实验E----可判定的DFA的空问题
实验E----可判定的DFA的空问题 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB Total submit ...
- opencv的学习笔记4
通常更加高级的形态学变换,如开闭运算.形态学梯度.“顶帽”.“黑帽”等等,都是可以由常用的腐蚀膨胀技术结合来达到想要的效果. 1.开运算:先腐蚀后膨胀,用于用来消除小物体.在纤细点处分离物体.平滑较大 ...
- python核心编程学习记录之函数与函数式编程
@func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...
- java中的23中设计模式(转载的,有时间一定要熟读)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- .getClass();
Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息.可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得.获得此对象后 ...
- Robotlegs框架1.5简介
该框架的1.5版本位于https://github.com/robotlegs/robotlegs-framework/tree/version1,现在已经出了重新架构的2.0版本,所以我决定先研究已 ...
- Uva 10537 过路费
题目链接:http://vjudge.net/contest/143062#problem/C 题意: 给定一个无向图,大写字母是城市,小写字母是村庄,经过城市交过路费为当前货物的%5,路过村庄固定交 ...
- Android first---文件读取(登录案例编写为主)
以android登录案例来介绍文件的读取与androidAPI给予的方法 第一步:绘制界面 绘制方法:在线性布局下面设置相对布局 代码部分: <LinearLayout xmlns:androi ...
- CentOS 7下关于systemd的一些唠叨话一:systemd的特点和使用
摘要 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版 ...
- MQ框架的比较
MQ框架的比较 MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据 ...