使用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里所导入的文件就是现在生成的文件了!!

C#软件winform程序安装包制作及卸载程序制作的更多相关文章

  1. 基于DevExpress的Winform程序安装包的制作

    在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...

  2. 使用WinRar软件制作程序安装包

    之前我写过使用好压软件打包程序,见随笔: 使用好压(HaoZip)软件打包EverEdit制作安装程序 - Fetty - 博客园http://www.cnblogs.com/fetty/p/4907 ...

  3. Mac OS平台下应用程序安装包制作工具Packages的使用介绍

    一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...

  4. 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)

    VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...

  5. [程序安装包制作] Advanced Installer 备忘

    原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...

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

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

  7. 用Inno Setup制作WEB程序安装包

    原文 用Inno Setup制作WEB程序安装包 最近做了一个WEB程序的安装包,我把制作的过程做个介绍,贴出源码给大家做个参考 看看inno 的脚本 [Setup] AppCopyright=tes ...

  8. Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)

    上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...

  9. 使用InstallAnywhere7.1制作Java exe程序安装包

    [转[使用InstallAnywhere7.1制作Java exe程序安装包 使用InstallAnywhere7.1制作Java exe程序安装包 对于已经完成的Java应用程序开发项目,从商业化角 ...

随机推荐

  1. Redux中的重要概念

    Action/Reducer/Store 首先,先看看第一张图,图中展示了Redux的单向数据流,以及Action.Reducer和Store这三个核心概念. 下面就围绕上图,非别介绍Action.R ...

  2. 基于Vue 和 webpack的项目实现

    Vue.js 是一款极简的 mvvm 框架,如果让我用一个词来形容它,就是 “轻·巧” .如果用一句话来描述它,它能够集众多优秀逐流的前端框架之大成,但同时保持简单易用.废话不多说,来看几个例子: & ...

  3. Unity 3D 连接Mysql数据库

    要想使用Unity直接连接数据库需要以下几个动态库

  4. 虚拟化之KVM virsh常用命令篇

    1,查看运行的虚拟机 virsh list 2,查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3,连接虚拟机 virsh console +域名(虚拟机的名称) 4,退出虚 ...

  5. 9. iptables 配置

    iptables 配置文件存放位置:  [root@Demon yum.repos.d]# vim /etc/rc.d/init.d/iptables   一.只给 Centos 6.5 打开 22 ...

  6. django的路由系统

    在django生成的工程项目文件中urls.py文件用于指定路由信息 该文件默认导入以下模块 from confimport from import admin from confimport url ...

  7. C# 获得两日期之间所有月份(包括跨年)

    前台: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  8. myeclipse内存不足有关问题

    myeclipse内存不足有关问题 myeclipse内存不足问题 使用myeclipse8.5出现如下问题:MyEclipse has detected that less than 5% of t ...

  9. 198. House Robber,213. House Robber II

    198. House Robber Total Accepted: 45873 Total Submissions: 142855 Difficulty: Easy You are a profess ...

  10. spring的IOC,DI及案例详解

    一:spring的基本特征 Spring是一个非常活跃的开源框架:它是一个基于Core来架构多层JavaEE系统的框架,它的主要目的是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Sp ...