您的位置:首页 > 编程语言 > C#

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

2015-08-30 15:59 771 查看
转自:http://jingyan.baidu.com/article/b2c186c8e26f2ac46ef6ff3a.html

使用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}”);

}

}

}

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



安装与部署项目

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

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

转:http://freesleep.blog.163.com/blog/static/46387047201102111716890/

使用VS 自带的打包工具,制作winform安装项目

  开发环境:VS 2008 Access

  操作系统:Windows XP

  开发语言:C#

  项目名称:**管理系统

  步骤:

  第一步:打开开发环境VS2008,新建项目,选择其他项目类型,再选择”安装项目”,输入名称及选择安装路径;

  



  第二步:进入文件系统选项卡,选择应用程序文件夹,在中间的空白区域右键选择”添加文件”,添加项目文件(exe,dll);

  


  



  第三步:添加项目所需文件;这里有两个文件夹需要注意(DataBase和Report),因为DataBase是存储项目数据库,而Report则是存储项目所需的报表文件.rpt,因此呢,在应用程序夹中也需要建同名的文件夹,并且添加所需的文件。效果:

  



  第四步:为了在开始程序菜单中和桌面应用程序中看到安装程序,这里我们就需要为项目创建快捷方式。右键选择可执行文件 (PersonFinance.exe),创建快捷方式,进行重命名”**公司**管理系统”,将该快捷方式拖放到 ‘用户的”程序”菜单’ 中。重复该步骤将新建的快捷方式添加到 “用户桌面” 文件夹中

  最好在用户菜单中建立一个文件夹,存放安装程序

  



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

  1)、Windows Installer 3.1(必选)

  2)、.NET Framework 3.5 (可选)参考最后说明

  3)、Crystal Report Basic for Visual Studio2008(x86,x64) (可选) 项目中用到了水晶报表就需要勾选此项

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

  



  到这里安装包制作差不多完成了一大半 接着来

  第六步:卸载程序,因为安装包做好之后不能只有安装程序,还要有卸载程序

  首先呢,在”C:\WINDOWS\system32″路径下,找到msiexec.exe 添加到应用程序文件夹中,创建快捷方式,并命名”卸载管理系统”或”Uninstall”

  其次呢,选择安装项目的ProductCode

  


  右键选择卸载程序的快捷方式,进入属性,在Arguments选项中 输入/x 及ProductCode; 例如:/x {6931BD71-5C5E-4DA1-A861-14C7D1A78B97}

  将卸载程序同时存放到用户的开始菜单的文件夹中(在第四步中新建)

  第七步:更改安装程序属性,右键选择安装项目属性,可以设置项目作者及名称,其他属性信息可以根据实际情况进行设置.

  


  第八步:生成安装项目

  生成时,会出现些警告:应将“msiexec.exe”排除,原因是其源文件“C:\WINDOWS\system32\msiexec.exe”受到“Windows 系统文件保护”。

  两个或多个对象具有相同的目标位置(“[targetdir]\model.dll”)

解决方案:

  第一种:都不处理

  第二种:第一类警告,可以编写卸载程序

  第二种警告:删除相同的文件

  安装项目制作完毕.

  


  安装及运行:

  直接运行steup.msi 或是setup.exe 会出现

  



  在桌面和开始菜单中也会有相应的安装程序、卸载程序

  说明及小结:

  1、.net framework 框架是可选的,不一定说你采用的是VS2008开发就必须要使用.net framework 3.5,只要你在程序中没有使用到.net framework 3.5 的特性比如(LINQ),那么你选择框架时,是可以选择2.0的,为什么?因为2.0只有20多MB,而3.5则有200多MB。

  更改方式:在安装项目下面有个检测到的依赖项文件,双击里面的Microsoft .net framework,进入了启动条件选择卡,右键选择.net frmaework 在Version中选择你所需的.net framework框架

  


  


  


  2、文章中涉及到的名称大家可以根据实际所需进行设置。

VS2010 C/S模式winForm打包部署(生成安装包)图文教程

2014年02月22日 作者:张海城 被围观 [2720]+

核心提示:今天张海城想把一个用VS2010 C/S模式开发的winForm程序制作一个安装包,结果在做的时候一些注意事项没有记清楚,弄的有点乱,于是通过查阅资料,最终安装包制作成功。

今天张海城想把一个用VS2010
C/S模式开发的winForm程序制作一个安装包,结果在做的时候一些注意事项没有记清楚,弄的有点乱,于是通过查阅资料,最终安装包制作成功。具体步骤如下:

先说说什么是打包部署和发布,对于c/s模式打包就是把我们的程序打成压缩包,打包将行李入包,发布是将打好的包展开. 这样的好处一是保护版权和安装方面,二是打包会把cs文件编译成为dll文件,第一次运行的速度快,同时保护代码.三是打包发布可以节省控件,基本解决了安全性的问题,使得程序员的原codes不被泄漏.

说说打包和发布的区别,发布是没有安装文件的,要求服务器上必须安装上一个frontpage
server extension,发布是把页面文件aspx,资源文件放到网站里,代码编译到程序集中放到bin中.

打包部署,就是打成一个msi文件,运行后将在服务器上自动新建一个虚拟的目录,把文件的内容拷贝进去,拷贝的内容是你在打包中指定的.

下面就详细讲述VS
C/S模式winForm打包部署.

基础.

安装项目的六个子项:文件系统注册表文件类型用户界面 自定义操作启动条件.



我们最常用的是文件系统了.

也就是“文件系统编辑器”

“文件系统编辑器”中的文件夹可以包含文件、项目输出和程序集。 项目输出表示解决方案中另一个项目所包含的项,并且可以包含以下内容:主要的生成输出(如可执行文件)、本地化资源、符号调试信息、内容文件(如HTML 页)和项目源文件。其中的每个输出都称为项目输出组,项目输出组包含主要输出(也称为键输出)和任何附加的输出与依赖项。还支持快捷方式的创建,这样,您可以将文件放置在一个文件夹中,然后从桌面或另一文件夹中的快捷方式指向这些文件。

文件系统下有三个文件夹,"应用程序文件夹","用户的'程序'菜单","用户桌面".

“桌面文件夹”相当于“桌面”系统文件夹。 Windows会跟踪系统文件夹的位置,因此无论文件夹的位置或名称如何,放置在“桌面文件夹”中的文件最后始终位于“桌面”系统文件夹中。

"应用程序文件夹":表示要安装的程序需要添加的文件;可以在 “应用程序文件夹”下创建“应用程序数据”文件夹,这样不论“应用程序文件夹”位于目标计算机上的什么位置,放置在“应用程序数据”文件夹中的文件都始终安装在同一相对位置。

"用户的'程序'菜单":表示应用程序安装完毕,用户的"开始菜单"中显示的内容.

注册表.



可以向注册表中插入键,在安装应用程序的同时创建注册表项.

文件类型:

右击可"添加文件类型"

“文件类型编辑器”包含一个窗格,其中显示了文件类型和操作的分层列表。 默认情况下, “文件类型编辑器”包含一个 “目标计算机上的文件类型”节点;新文件类型可以添加到该节点的下面。

用户界面:



系统自动提供一组在安装期间显示的默认的对话框.根据正在构建的项目的类型,所提供的这组对话树中包含两部分,安装与管理员安装.安装部分包括终端用户运行安装程序时显示的对话框,而管理员安装部分包含系统管理员将安装程序上传到某个网络位置时显示的对话框.如果想要构建一个没有用户界面的安装,只需要在对话框树上删除安装部分中的所有对话框.或者从一组可用模版添加到安装项目中.

启动条件:



使用启动条件编辑器来定义成功运行安装所必须的条件.例如,特地你个版本的操作系统,配置启动条件来搜索目标计算机上的某个特定文件\注册表\或组件,在安装时进行评估并按照启动条件编辑器中所示的顺序执行.

自定义操作:



"自定义操作"提供了一种在安装结束时执行任务的机制。例如,您可能希望在安装应用程序之前先配置好数据库,此时您可以用自定义操作来完成数据库的创建。自定义操作构建为单独的
.dll 或 .exe 文件,然后使用自定义操作编辑器添加到项目中,其中这些操作与不同的安装阶段有关。自定义操作编辑器包括几个单独的文件夹,用于放置执行 Install、Commit、Rollback或Uninstall 任务的二进制文件。

操作演练.

创建新部署项目.

在"文件"菜单上指向"添加",然后单击"新建项目".



我们随即出现的"添加新建项目"的对话框中,打开"项目类型"窗格中的"其他项目类型"节点,打开"安装和部署项目",在选择"Visual
Studio Installer "



3.在"模版"窗格中,选择要创建的部署项目的类型.vs为我们提供了四种类型的部署项目提供了模版:合并模版项目安装项目web安装项目和CAB项目.

这四种模版,

安装项目 主要是通过使用InstallShield
2010 Limited Edition来创建、生成并打包windows应用程序和服务.

合并模块项目安装,可以利用"合并模块"项目将文件或组建打包到单个模块中,以便共享此模块.产生的.msm文件可以包含任何其他部署项目中.

web安装,为web应用程序生成安装程序,web安装项目的文件安装在web服务器上的virtual
Root 目录中.

CAB项目,创建cab文件,使用CAB项目可以从Web服务器下载到Web浏览器的ActiveX组建进行打包.

在这里我们使用的是"安装项目"模版,最终生成的是.msi文件,包含应用程序、任何依赖文件以及有关程序的信息,如注册表项和安装说明等.当msi文件在另一个台计算机上分发运行时,安装失败,计算机则会返回到安装前的状态.

向解决方案中添加现有的部署项目

在"文件"菜单上指向"添加",然后单击"现有项目".

添加了解决方案sln的文件.

将windows的应用程序添加到安装程序中.

在我们建立一个"安装项目"后,你会看到这样的三个文件夹.(在文章的开始时已做讲述.)



这三个文件夹依次是:

"应用程序文件夹":表示要安装的程序需要添加的文件;

"用户的'程序'菜单":表示应用程序安装完毕,用户的"开始菜单"中显示的内容,一般这个文件夹中,需要创建一个文件用来存放:应用程序.exe和卸载.exe.

"用户桌面":表示这个应用程序安装完,用户的桌面上的创建.exe的快捷方式.

在应用程序文件夹节点右击,指向"文件",添加要打包的文件,添加的文件一般是程序的Debug目录下的文件;





在应用程序文件夹节点右击,指向"添加",然后单击"项目输出".



在列表中选择"主输出"组.在"配置"框中选择"(活动)".单击确定.



我们可以看到自动加载的依赖项.



为启动条件设置初值.右击我们的安装文件,选择"属性"





这样安装包就会打包.NET
FrameWork,在安装时不会从网上下载.NET
FrameWork组件;但是安装包会比较大。

在"生成"菜单上单击生成.



以上便是完成了基本的打包.

可选的部署功能.

为基于windows的应用程序创建快捷方式.

我们在"应用程序文件夹"节点下选择应用程序的主输出,右击,选择创建主输出的快捷方式.



右击属性窗口,或F4显示该快捷方式的属性菜单栏.可以为启动系统的快捷方式选择恰当的图表.



双击进入添加图标的窗口.



为我们的.NET程序创建一个卸载程序,并在桌面上显示卸载程序的快捷方式.

在"应用程序文件夹"中添加文件,文件位置:"C:Windows\System32\Msiexec.exe"或直接搜索该文件名.



简要说说msiexec.exe,系统进程,是WindowsInstaller的一部分。用于安装Windows
Installer安装包(MSI),对系统的正常运行是非常重要的,一般在运行Microsoft
Update安装更新或安装部分软件的时候出现,占用内存比较大。

同样我们要创建该系统进程exe的快捷方式,



我们的快捷方式如果是在桌面显示的就拖动到"用户桌面"文件夹.如果在开始菜单中显示的,就拖动到"用户的'程序'菜单"文件夹中.





点击安装项目,F4显示安装项目的属性



vs中会给出提示该属性的作用.找到productCode属性,指定应用程序的唯一标识符.复制这个标识符到黏贴板.

粘贴卸载快捷方式属性栏的命令行参数,在前加上/X空格.



这里还在要说说给我们的安装程序添加启动条件.

此次步骤是检查目标计算机上是否安装了,Internet
Explorer 5.0或更高版本,如果未安装所需要的文件,将停止安装.

添加启动条件来检查Internet
Explorer版本(可选)

在"解决方案资源管理器"中选择我们的安装程序lfsfxyComputerSystem

在"视图"菜单上指向"编辑器"然后单击"启动条件"



默认的依赖项NET
Framework,且无法删除,我们在这里选择如下.



我们可自行添加启动条件.

右击"启动条件"文件夹,"添加启动条件",可以自定义添加了.





有时候程序的安装运行还需要某些软件、补丁,比如IE的版本要在5.0以上等,这时就需要添加启动条件。在“解决方案资源管理器”中选择“TestSetup”项目。在“视图”菜单上指向“编辑器”,然后单击“启动条件”。在“启动条件编辑器”中,选择“目标计算机上的要求”节点。在“操作”菜单上选择“添加文件启动条件”。此时,将在“搜索目标计算机”节点之下添加一个“搜索 File1”节点,在“启动条件”节点之下添加一个“Condition1”节点(condition :以…为条件)。将“搜索
File1”重命名为“搜索 Internet Explorer”。在“属性”窗口中,将“FileName”属性设置为 Iexplore.exe,将“Folder”属性设置为 [ProgramFilesFolder],将“Depth”属性设置为 2,将“MinVersion”属性设置为 5.00。选择“Condition1”节点。将“Message”属性设置为下面的内容为“此程序需要 Microsoft Internet Explorer 5.0 或更高版本。请安装 Internet Explorer 并重新运行
TestSetup。”

再次生成解决方案.生成解决方案后,我们可以看到,debug文件夹中就是我们的安装包.



在这里还是要说说这里面msi和exe两个安装程序的区别.
<span style="list-style: none; border: 0px; padding: 0px; margin: 0px; background-image: none; background-attachment: scroll; background-color: transparent; font-size: 12px; background-position: 0% 0%; background-repeat: repeat repeat;">msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了.
setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困难的多,需要人工编写和安装,修改,卸载相关的很多内容.而msi把这写功能都集成化了,易于开发WINDWOS程序安装包.</span>


如果我们选择了安装程序,"属性"-->"系统必备",
添加了安装系统必备,就会把系统必备的安装包也会打包在debug文件夹中.在我们的debug中就有一个.NET
FrameWork的安装包.



在开始文件夹中.会看到我们的卸载.

在桌面有我们要显示的程序启动的快捷方式.



转载本篇文章请注明文章出处--http://zhanghaicheng.com/share/csharp/239.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: