vs2010打包winform程序详解
最近一直在做winform程序,做完后程序打包很头疼,第三方打包工具,好用的花钱,不花钱的不好用,最后只能用vs自带的打包工具了!
打包过程vs2010(包含卸载功能):
1、 添加安装和部署。
首先打开一个要进行打包的项目的设计界面,然后点击vs上的“文件”→“添加”→“新建项目”→“已安装的模板”→“其他项目类型”→“安装和部署”→“Visual Studio Installer”→“安装项目”。
然后为安装项目起一个名称,再选择一个安装位置,如图:

最后点击确定。如图:

2、 配置应用程序文件夹
选中应用程序文件夹,在右边空白位置右键 “添加”→“项目输出”→“主输出”,如图:

最后点击“确定”,如图:

如果程序中用到了外部的文件,那么可以继续操作:
右键“添加”→“文件”,选择要添加的文件,如图:

现在应用程序文件夹部分就处理完了。
3、 创建快捷方式
快键方式可以创建两个:“开始”菜单一个,桌面一个
1)、创建“开始”菜单中的快捷方式:
点击 中的‘用户的“程序”菜单’,在右面空白处右键
“添加”→“创建新的快捷方式”,然后选择“应用程序文件夹”下的程序的exe文件,如图:

然后给快捷方式起名,
再设置快捷图标,
右键新创建的快捷方式的名称,打开“属性窗口”,通过Icon属性设置快捷方式的图标,如图:

2)、创建桌面的快捷方式图标:
过程同 创建“开始”菜单中的快捷方式 一样
4、 更改默认安装目录:
右键“应用程序文件夹”→“属性窗口”里的 “DefaultLocation”属性可以更改默认的安装目录,
改前:

改后:

5、 打包时,如果需要把对应的.NET Framework 打到安装包中,此时促进行如下操作:
右键安装项目名→“属性”→“系统必备”,勾选对应的系统必备组件
然后指定系统必备组件的安装位置,
注:如果选“从组件供应商的网站上下载系统必备组件”(安装客户端时,pc机需联网)
如果选“从我的应用程序相同的位置下载系统必备组件”,那么打包时将会从程序中把组件打进去
(安装客户端时,pc机无需联网——推荐)
6、 添加卸载功能
在应用程序文件夹右边空白处,右键->添加->文件,选择c:\windows\system32文件夹下的msiexec.exe文件。然后重命名为Uninstall.exe。改不改名字都可以。如图:

用鼠标左键单击安装项目名,查看其属性,注意不是右键,属性。查看其ProductCode属性。然后复制该属性的值。如图

然后打开刚创建的那个卸载快捷方式的属性对话框,在Aguements属性中输入"/x {ProductCode}",将ProductCode替换为刚粘贴的值
最后点击生成打包程序即可
7、 用winrar将vs生成的安装程序打成一个 .exe包(方便安装)——前提,一定安装了winrar压缩软件
进行到第六步时,用vs为winform程序打包就已经完成了,不过此时会在安装程序的Debug文件夹生成2个文件夹、1个.exe文件和1个.msi文件,而.exe安装时,又依赖于.msi文件,另外两个文件夹是对应的 .NET Framework 组件,
这个时候给客户安装时拷贝过去的内容较多,也容易安装出错,如果把这些安装内容都打在一起,形成一个 .exe 文件,就比较方便了,
此时,可以用winrar的 自解压格式压缩文件 来实现,实现过程:
1>将要打在一起的文件及文件夹全部选中,右键 →“添加到压缩文件”,在打开的压缩面板的“常规”选项卡中勾选“创建自解压格式压缩文件”,此时会发现默认的压缩文件名编程了 .exe 后缀名了;压缩方式最好选择“存储”,这样打包后的程序会很快解压缩并运行。如图:

2>设置运行文件:再切换到“高级”选项卡,点击“自解压选项”,“常规”里设置程序解压后运行的文件(这个很重要)如图:

3>设置安装程序文件的图标:
切换到“文本和图标”,点击“从文件加载自解压文件图标”后的“浏览”按钮,选择安装程序文件的图标,如图:

先不要着急点击“确定”,还有最后一项设置~ ~ ~
4>切换到“模式”下,勾选“解包到临时文件夹”和“全部隐藏”,一路点击“确定”,打工告成!!
8、 完成了!
此时我们会看到Debug下是这样的:

“测试安装程序.exe” 就是最中生成的打包文件,直接点击运行就行了!!
vs2010打包winform程序详解的更多相关文章
- InnoSetup 打包Winform程序
在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...
- Linux开机启动程序详解
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- Linux开机启动程序详解[转]
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- 从51跳cortex-m0学习2——程序详解
跳cortex-m0——思想转变>之后又一入门级文章,在此不敢请老鸟们过目.不过要是老鸟们低头瞅了一眼,发现错误,还请教育之,那更是感激不尽.与Cortex在某些操作方式上的异同,让自己对Cor ...
- C#串口通信程序详解
C#串口通信程序详解 摘要:创建C#串口通信程序需要注意什么呢?创建C#串口通信程序的步骤是什么?那么本文就向你详细介绍创建C#串口通信程序集体的内容. 在.NET平台下创建C#串口通信程序,.NET ...
- Linux如何实现开机启动程序详解(转)
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
转载自: DGPLM博客 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
- 如何利用IIS调试ASP.NET网站程序详解
如何利用IIS调试ASP.NET网站程序详解 更新时间:2019年01月13日 08:44:13 作者:江湖逍遥 我要评论 这篇文章主要给大家介绍了关于如何利用IIS调试ASP.NET网 ...
随机推荐
- ios 移动应用通用逻辑流程
请先看前一篇文章<移动互联网app业务逻辑图>,以便于理解 http://blog.csdn.net/uxyheaven/article/details/14156659 1 start ...
- 让人眼花缭乱的 RSS 版本0.90、0.91、0.92、0.93、0.94、1.0 和 2.0
1.0的规范 http://web.resource.org/rss/1.0/spec 2.0的规范 http://cyber.law.harvard.edu/rss/rss.html 一个介绍什么是 ...
- 【不积跬步,无以致千里】DELETE SINGLE IPTABLES RULES
You can delete them based on what they’re doing: iptables -D INPUT -s 127.0.0.1 -p tcp --dport 111 - ...
- maven常见问题归纳
前言 Maven,发音是[`meivin],"专家"的意思.它是一个非常好的项目管理工具,非常早就进入了我的必备工具行列,可是这次为了把ABPM项目 全然迁移并应用maven,所以 ...
- flex-mp3
Mp3Player.as package ddw.adobe { import flash.events.Event; import flash.events.IOErrorEvent; import ...
- PI-利用SoapUI 测试web service的方法介绍
在运用webservice调用数据的过程中,非常关键的一个步骤就是获取到webservice的地址,并测试webservice的连通情 况,webservice的连通测试主要是两个方面:1,查看web ...
- delphi 为应用程序添加提示
type TForm1 = class(TForm) Button1: TButton; Panel1: TPanel; Edit1: TEdit; procedure Fo ...
- phpstorm 和web storm汉化
http://www.jincaimao.com/cms-phpstorm-index.html phpStorm汉化方法: B1).找到X:\Program Files\JetBrains\PhpS ...
- 如何在Ubuntu 13.04中升级到 GNOME 3.8
如何在Ubuntu 13.04中升级到 GNOME 3.8 添加 GNOME 3 PPA(Personal Package Archives) 在你进一步浏览之前,确认你正在运行的是Ubuntu 13 ...
- 高并发网络编程之epoll详解
select.poll和epoll的区别 在linux没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序.在大数据.高并发.集群等一些名词 ...