使用vs2010 winform程序开发的软件的人比较多,程序的开发是为了在不同的人不同的机器使用,为了使不同的机器能使用该软件就需要在制作程序安装包,安装包里必须包含该软件运行所选的所有环境,下面就来讲解下winform程序安装包的制作。

1:新建安装部署项目

打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)

此主题相关图片如下:

新建安装部署项目

2:安装向导

关闭后打开安装向导,点击下一步,或者直接点击完成.

3:开始制作

安装向导完成后即可进入项目文件夹:

双击”应用程序文件夹”在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.

开始制作

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的”用户的´程序´菜单”和”用户桌面”中.

这样安装程序安装安装完成后会在 “开始->所有程序”和”桌面”上生成程序的快捷方式.

程序的快捷方式

然后右击左边的”应用程序文件夹”打开属性对话框:

将属性中的”defaultlocation”的路径中的”[manufacturer]“去掉,

不然的话做好的安装程序默认安装目录会是”c:\programm file\你的用户名\安装解决方案名称”;

然后打开解决方案管理器,右击你的解决方案名称,选择属性:

在打开的属性页中,选择”系统必备”,

选择”系统必备

在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!

选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)

安装文件包

关于系统必备的说明:

如果机器上没.net环境采用上面的方法是网上下载安装,下面的方法则是本地直接安装免去下载的过程。

设置系统必备,右键选择安装项目,进入属性页中,单击”系统必备”按钮,进入系统必备对话框;勾选“创建用于安装系统必备组件的安装程序”,在安装系统必备组件列表中,选择

重要一点:勾选”从与我的应用程序相同的位置下载系统必备组件(D)”,其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件)

好了,这样就完成99%了,然后点击”生成->生成解决方案”,哈,生成成功!

4:制作完成

现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.

【续】关于”卸载”功能的添加

上面的文章只介绍了简单的生成安装的方法,

但是在vs.net2005下并没有直接生成卸载程序的功能,

所以我们只好用msi来实现了,

原理我就不讲了,网上一搜一堆,我只讲操作,

【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,

这个文件在c:\windows\system32文件夹下,

添加一个msiexec.exe

添加进去以后,为了让他更像个卸载程序,把他的名字改成”Uninstall.exe”,

当然这个关系不大,改不改都行的.

然后给他创建一个快捷方式,放到桌面或者”开始-程序”中,

我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,

鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,

这个区别很大,这时你就可以看到ProductCode了,

鼠标左键单击项目名称

然后打开你创建的那个快捷方式的属性对话框,

在Aguements属性中输入”/x {ProductCode}”

属性对话框

生成带有卸载功能的安装程序

好了,然后点击”生成解决方案”即可生成带有卸载功能的安装程序了.

补充:

自定义用户界面

1、打开用户界面

2、这里可以设置已有窗体的属性和新增窗体

窗体的属性和新增窗体

设置窗体属性

设置窗体的属性

比如这里可以设置一下BannerBitmap,安装窗口上面的图片,方法和前面的ICO文件一样,浏览去找Images下面的Bmp文件即可!

就是这样的效果,哈哈,效果差了点啊!

设置一下BannerBitmap

可以根据需要来新增窗口,比如密码啊,等等

新增窗口

就是上面的这个窗口

五、卸载程序怎么打包上去?

我试了好几种方面都不太好使,可能是没理解!最后用了这一种方法,感觉还不错!

1、新建一个控制台程序

2、看代码

?

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace UninStall

{

class Program

{

static void Main(string[] args)

{

string sysroot = System.Environment.SystemDirectory;

System.Diagnostics.Process.Start(sysroot + “\\msiexec.exe “, “/x {522B529D-8A62-432D-962F-D0CFF826775E} /qr”);

}

}

}

注意上面代码里的红字部分,这个就是你要打包的程序的安装与部署项目的ProductCode,那么这个ProductCode在哪里找呢?请记住,这里 是两个系统,一个是你要打包的系统,另一个是控制台程序,所以啊,这点,要理解!去你要打包的项目里去找

安装与部署项目

看到了吧,就是它了!把它拷贝

过来,放在控制台程序里生成一下,上面UNIT里所导入的文件就是现在生成的文件了!!

转载于:https://www.cnblogs.com/xuxiaoshuan/p/3586340.html

C#软件winform程序安装包制作及卸载程序制作相关推荐

  1. C#软件winform程序安装包制作

    转自:http://jingyan.baidu.com/article/b2c186c8e26f2ac46ef6ff3a.html 使用vs2010 winform程序开发的软件的人比较多,程序的开发 ...

  2. 程序安装包制作工具 v1.0官方版

    2019独角兽企业重金招聘Python工程师标准>>> 名称:程序安装包制作工具 v1.0官方版 版本:1.0更新日期:2016-06-27 大小:2.9MB软件语言:简体中文 软件 ...

  3. Advenced Installer制作C#程序安装包过程.Net和Visual C++采用静默安装配置说明

    在制作C#程序安装包时,需要安装.Net Framework和Visual C++运行库文件.若采用一般安装模式会弹出安装界面,让用户点击确定进行安装,若用户选择出错会导致程序无法正常运行.给软件的运 ...

  4. 魅族M8软件之CAB安装包制作篇

    研究了好几天QT-WINCE程序编写,终于有点眉目了,有点小兴奋,可是还有个问题就是怎么进行打包发布啊?? 随兴上网上找了下,还真有 ,不过有的说的让人头晕目眩的,分不清头绪,幸运的是我终于找到了个带 ...

  5. Windows程序安装包制作——EasySetup

    0 前言 这里略去关于EasySetup的下载和安装,直接描述使用EasySetup创建程序安装包的过程.下面的步骤都已经假设您您已经安装并启动了EasySetup,而且已经准备好用于制作安装包的程序 ...

  6. linux程序安装包怎么用,制作Linux下程序安装包——使用脚本打包bin、run等安装包...

    制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩 包,那样,就能够打包很多文件了,在脚本中解压出来即可. ...

  7. 制作C++程序安装包

    参考: 1.http://wenku.baidu.com/link?url=AAdvye_kkxaaVicMA3IRtaSW6Ig9bALZHF1PjX8j_mlxZWkkOIzywn0wiyz7bY ...

  8. Visual Studio 2010制作程序安装包

    所谓程序安装包,可以简单理解为一种压缩包,即将你自己所写程序所需要的所有资源,如动态链接库dll.图标文件ico,甚至是调用的第三方可执行程序exe,打包并压缩.当用户运行该安装包时,再将相应的资源解 ...

  9. Windows程序安装包制作——Qt Installer Framework

    0 前言 Qt提供了制作安装包的工具,本文介绍如何安装和使用. 1 下载 到这里下载QtInstallerFramework-win-x86.exe,即可. 2 安装 双击安装包即可启动安装,保持默认 ...

最新文章

  1. 扫描 VNC 的脚本
  2. keepoutlayer设定_AD的keepout层是做什么用的,如何使用
  3. 京东发布农民丰收节交易会大数据 互联网谋定现代农业
  4. border和图片之间有缝隙_院子里现浇水泥板,每块之间留7公分的缝,铺出来的效果漂亮大气...
  5. 阿波罗登月51周年,程序员用DAIN技术还原阿波罗登月高清影像,效果震撼
  6. 在Kubernetes Pod中使用Service Account访问API Server
  7. 阿里云高级技术专家赵伟:安全加速 SCDN 设计与案例
  8. Tips--解决安装matplotlib无法使用pyplot的问题
  9. 上海新阳半导体收到ASML-1400光刻机 将用于研发193nm ArF光刻胶
  10. C#:SQLite大量插入的效率问题
  11. php如何触发html,html想触发php函数可以吗?
  12. vue学习笔记-15-vue生命周期
  13. 高校后勤管理系统Java项目-基于SSM
  14. 计算机ps图片在哪里看,如何在Photoshop中查看照片的EXIF信息如何删除照片的exif信息...
  15. Sybase数据库知识总结
  16. 计算机怎么用鼠标,如何正确使用鼠标,这些知识你知道吗?
  17. JavaScript设置视频播放速度
  18. 2021 年 VS Code 主题推荐
  19. vue POST 请求方式下载excel文件
  20. 【12c】新特性:Oracle 12c In-Database Archiving 数据库内归档

热门文章

  1. 使用行动列表去创造简单且可扩展的游戏AI
  2. 《炉石传说》架构设计赏析(2):Scene管理
  3. MongoDB 语法和mysql语法对比学习
  4. 配置Goldengate支持DDL
  5. eclipse代码补全
  6. linux下mysql安装笔记
  7. SPOJ.TLE - Time Limit Exceeded(DP 高维前缀和)
  8. Android系统版本与API级别对照表
  9. MySql cmd下的学习笔记 —— 有关建立数据库的操作(连接Mysql,建立数据库,删除数据库等等)...
  10. 2018.07.11 线段树基本模板复习