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程序详解的更多相关文章

  1. InnoSetup 打包Winform程序

    在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...

  2. Linux开机启动程序详解

    Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...

  3. Linux开机启动程序详解[转]

    Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...

  4. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图     方法2:利用命令行chkconfig命令进行设置 简要说明 ...

  5. 从51跳cortex-m0学习2——程序详解

    跳cortex-m0——思想转变>之后又一入门级文章,在此不敢请老鸟们过目.不过要是老鸟们低头瞅了一眼,发现错误,还请教育之,那更是感激不尽.与Cortex在某些操作方式上的异同,让自己对Cor ...

  6. C#串口通信程序详解

    C#串口通信程序详解 摘要:创建C#串口通信程序需要注意什么呢?创建C#串口通信程序的步骤是什么?那么本文就向你详细介绍创建C#串口通信程序集体的内容. 在.NET平台下创建C#串口通信程序,.NET ...

  7. Linux如何实现开机启动程序详解(转)

    Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...

  8. 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)

    转载自:   DGPLM博客 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)

  9. 如何利用IIS调试ASP.NET网站程序详解

    如何利用IIS调试ASP.NET网站程序详解 更新时间:2019年01月13日 08:44:13   作者:江湖逍遥    我要评论   这篇文章主要给大家介绍了关于如何利用IIS调试ASP.NET网 ...

随机推荐

  1. oracle安装界面中文乱码解决

    在安装oracle时如果我们用的是英文安装没有任何问题,但是我要安装中文的,结果中文界面就出现了乱码了,后来网上找了原因是要安装中文包才可以,下面我来介绍一下. 在Linux的X window里安装o ...

  2. cocos2d-x CCScrollView

    转自:http://www.cnblogs.com/dcxing/archive/2012/12/31/2840217.html ScrollView一般用在游戏的关卡选择这种类似的场景还有帮助这种场 ...

  3. mvc4 web-api 与unity搭建接口

    对于接口重要的应该是 功能实现,合法性验证,性能监控,日志等模块 通过unity aop功能可以实现统一的日志模块和性能监控. 1.新建mvc4 webapi项目 nuget添加 unity 3.0+ ...

  4. BZOJ 2748: [HAOI2012]音量调节 dp

    2748: [HAOI2012]音量调节 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  5. TC SRM 664 div2 A BearCheats 暴力

     BearCheats Problem Statement    Limak is an old brown bear. Because of his bad eyesight he sometime ...

  6. CSAPP缓冲区溢出攻击实验(上)

    CSAPP缓冲区溢出攻击实验(上) 下载实验工具.最新的讲义在这. 网上能找到的实验材料有些旧了,有的地方跟最新的handout对不上.只是没有关系,大体上仅仅是程序名(sendstring)或者參数 ...

  7. 解决PowerDesigner 反向工程没有注释(备注)

    本文转载自:http://www.cnblogs.com/zhangxb/archive/2012/04/20/2458898.html 1. 列注释 原来代码: {OWNER, TABLE, S, ...

  8. OSGi 学习(一)

    从基础开始,先来说说OSGi的基本理念. OSGi通过隔离底层classloader,强制应用在设计的时候就考虑模块化,并且基于白板模式来支持服务的注册与订阅. 在OSGi中,模块可以等价理解为bun ...

  9. sqlserver 字符串相关函数

    http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 以下所有例子均Studnet表为例:  计算字符串长度len()用来 ...

  10. Spark on Yarn遇到的问题及解决思路

    原文:http://www.aboutyun.com/thread-9425-1-1.html 问题导读1.Connection Refused可能原因是什么?2.如何判断内存溢出,该如何解决?扩展: ...