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进 ...
随机推荐
- Java基础之扩展GUI——显示About对话框(Sketcher 2 displaying an About dialog)
控制台程序. 最简单的对话框仅仅显示一些信息.为了说明这一点,可以为Sketcher添加Help菜单项和About菜单项,之后再显示About对话框来提供有关应用程序的信息. 要新建的对话框类从JDi ...
- Linux:挂载外部U盘,移动数据
背景: 我自己电脑连网采用拨号上网方式,为了把自己的虚拟机中的服务器ip域本机设置为一个局域网,而且ip固定下来,虚拟机网络连接采用了桥接方式.所以也导致了虚拟机内部没法连接外网.(不过可以通过在虚拟 ...
- 十一、Java基础---------内部类与匿名内部类
内部类分为普通内部类(有名)和匿名内部类.普通内部类分为成员内部类.局部内部类.静态内部类(嵌套内部类).顾名思义,内部类就是定义在一个类内部的类.什么时候都会使用内部类呢?当我们定义一个类,发现内部 ...
- 【笔记】after,before,insertAfter,insertBefore的作用
这几个方法的作用是插入外部节点,所谓外部插入节点就是我们平常在网页编程中手动添加代码到某一句语句的前面或后面,如图: 红色框的P是在蓝色框span的前面插入的外部节点,反过来说蓝色框的span是在红色 ...
- 在学Go语言
首发:个人博客,更新&纠错&回复 开始学点儿Go语言,这语言据说在国内比在国外火,社区上褒贬不一,不过“小马过河”嘛,总要先自己试试再来下结论. 环境准备: 1.在Golang中国下载 ...
- .Net程序员安卓学习之路4:使用xutils Get Post数据
前面使用了一些网络上找来的类进行网络访问,后来发现了安卓开发中有一个国人写的类库xutils比较全面,也比较经典,故后续使用xutils类库进行记录. 本例服务端使用WCF来实现,写好的WCF服务端在 ...
- Hide SSH Welcome Banner/Message on Ubuntu14.04+
Introduction Usually when you logged in you linux based PC remotely via SSH, a long banner will be d ...
- 关于SQL Server 中连接查询Join的几种常见用法
现有A.B .C 三个表,A中的ID=B中的ID,B中的ID=C中的ID:也就是:A.ID=B.ID,B.ID=C.ID; 一. Inner Join 把两个表链接一起查 Select * from ...
- Android网络框架源码分析一---Volley
转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium ...
- 两个img之间出现间隙的解决方法
今天写了个小页面,发现了一个问题,两个包在a标签里的img之间总是有间隙,不能挨在一起,最后在同事的帮助下,找到解决的办法是,设置img的基线,css代码如下: img{vertical-align: ...