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网 ...
随机推荐
- C++中标准容器Vector,元素操作.insert()小结
insert() 函数有以下三种用法: iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入值为val的元素,返回指 ...
- LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件
参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 本示例演示如何使用 语言集成查询 (LINQ) 和 LINQ to XML 从逗号分隔 ...
- jQuery提交Json数据到Webservice,并接收返回的Json数据
jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; ...
- 极域电子教室 e-Learning Class V4 2010专业版 学生机 卸载方法
学校的机房一般都会装教师机远程控制学生机的软件.比如我们学校装的就是"极域电子教室 e-Learning Class V4 2010专业版",上课的时候直接强制全屏远控,卸载又提示 ...
- Crystal Reports课程01-连接SQL Sever数据库
选择[OLE DB(ADO)] 选择[microsoft DB provider for SQL Sever],点击[下一步] 填写连接的服务器,数据库,用户名,密码等信息,然后点击[下一步] 选择[ ...
- Codeforces Gym 100650B Countdown DFS
Problem B: CountdownTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/conte ...
- 在WebClient中使用post[发送数据]
很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地.Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法 ...
- STM8的wait for interrupt
如果我用disable interrupt和enable interrupt包裹wait forinterrupt(WFI).你说WFI还能被唤醒么?有思考过么? 昨晚拿STM8L151K4的开发板, ...
- C++ AppendMenu
主题 1. 系统菜单下面添加自定义菜单 2. 3. 4. 5. AppendMenu The AppendMenu function appends a new item to th ...
- android数据库操作之直接读取db文件
在对数据库操作时,常用的有两种方法: 1.在代码中建库.建表: 2.直接将相关库.表建立好,将db文件拷贝至assets目录下: 现在来看看第二种方法: private String Ge ...