`
jishublog
  • 浏览: 868980 次
文章分类
社区版块
存档分类
最新评论

VS2012程序打包部署详解

 
阅读更多
上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结。程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具。不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的。
经过翻阅资料发现,VS2012虽然没有集成打包工具,但它为我们提供了下载的端口,需要我们手动安装一个插件InstallShield。网上有很多第三方的打包工具,但为什么偏要使用微软提供的呢?因为最原始的也是最高级的,万变不离其宗。

一、.NET程序部署机制

上篇博客稍微总结了下.NET程序的编译机制,下面了解些有关程序部署的一些机制。在.NET程序包下有三个文件夹分别是bin文件、obj文件、My Project文件,他们分别封存着程序的组成部分。
bin目录用来存放程序的编译结果,它有DebugRelease两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,在编译后生成的程序文件会存放在该目录下。当然我们也可以手动修改程序的输出路径,修改方法:项目属性—>配置属性—>输出路径来修改。
obj目录是用来保存每个模块的编译结果,用来放置程序生成时的中间文件。程序不会直接生成出可用的文件,而是由源程序生成中间文件,再编译中间文件生成可执行文件的。在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。
My Project目录定义你程序集的属性,被称为项目属性文件夹。目录下的AssemblyInfo类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。
在程序编译生成后,程序的源文件就不在重要了,重要的是DLL、EXE、Config等的程序的组件,有了程序的组件程序就能够正常运行。所以在发布制作安装程序时我们只需要将程序的组件打包即可。

二、InstallShield程序打包图解

VS2012中打包工具被看做程序集,在使用时和程序集一样被创建到程序解决方案下。需要我们做的是添加项目即可。但是对于初次使用的朋友来说,我们需要根据提示一步步的先下载安装该打包工具。具体的安装方法不再详述,网上资料很多 。

1、设置安装程序集

InstallShield安装完成后,执行以下步骤右键解决方案-->添加-->新建项目-->其他项目类型-->安装和部署,具体操作如下图:


2、发布程序

在继续往下操作前一定要选择发布,在启动项目的属性内设置发布文件夹默认路径设置为安装系统的文件夹。

3、设置程序安装信息

Application Information主要设置程序在安装时显示的有关程序的一些信息,如:程序的开发者、程序开发公司,程序安装图标和程序简介等。

4、添加程序文件

在下图中的第四步中添加程序文件时会有主输出、源文件等多个选项框,其实它的生成机制和.NET程序的编译机制是相同的。下图中的第五部显示出的UI.主输出,在生成安装文件后程序包中包含了与UI层进行交互引用的其它层的引用文件,但不会生成和UI层(启动层)没有相连的组件,我们只能通过手动添加。

5、添加程序的资源文件

程序源文件是程序运行的资源文件,也包含了程序的源码文件。如果不需要打包源文件的话,这步可以省略。


6、设计程序的打开方式

Application Shortcuts 程序快捷打开方式,Install为用户提供了两种显示形式,分别是Win菜单和桌面。下图显示了设置的一些注意项,此阶段也可以设置程序的显示图标。

7、设置程序安装注册表项

一般的应用程序在安装时不需要考虑程序的注册表项,此步骤可以不用设置。

8、设置程序安装时的安装视图

根据自己的需要进行设计即可。



9、打包环境

设置完上面的步骤后,我们的打包程序基本设置完成,但是在一些情况下我们往往要打包.net环境或者其它程序运行所需要的Windows环境,Install也为我们很好的设计了环境的打包。

操作完上述步骤后,程序打包基本设置已经完成,接下来要做的就是生成解决方案。生成解决方案后会在安装程序集下面生成一个名为Setup的文件夹,安装文件就保存在下面的目录中。Install在生成安装文件后会有Setup.exe和.msi两中安装文件,exe文件是安装的引导文件,核心文件是msi文件,里面封存了程序的组件。在里面找到Setup.exe文件及msi文件即可进行安装。

最后还要强调一点,Install打包工具中并没有继承中文环境,在它的底层语言库中没有中文语言,所以解决方案、程序集名称等涉及到与主输出相关的文件最好不要以中文名命名,否则会出现如下的错误:“-7184: The FileName column of the File table includes characters that are not available on code page 1252”,该错误是在说明在代码段1252处没有发现和文件名相关的语言库。

万变不离其宗,微软的Install程序打包工具虽然使用时较繁琐,但原始的就是最高级的,其它的打包工具和它相比也差不到哪儿去。



分享到:
评论

相关推荐

    vs2012程序打包部署详解

    vs2012制作安装程序详解,打包部署。

    VS2012程序部署

    VS2012程序打包部署详解

    vs2012下qt程序打包详解

    vs2012环境下qt程序打包详解, 详解整个程序打包部署。

    VS2012 程序打包部署图文详解

    程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具。不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的。  经过翻阅资料发现,VS2012虽然...

    vs2010程序安装部署(全套常用步骤含卸载)

    用vs2010打包程序 安装部署文件的创建步骤 附有卸载程序、使用方法详解

    VS2005及2010打包学习资料

    VS2005打包详解 Visual Studio 2010部署Windows应用程序 VS2010部署应用程序

    winform的安装部署

    最详细winform的安装部署(VS2012InstallShield2015LimitedEdition)打包程序详解)

    Winform 发布于与打包详解

    1如何为winform程序打包发布应用(图解教程) 2:新建安装部署项目 3:安装向导 4:开始制作 5:制作完成

    Docker如何部署Python项目的实现详解

    Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建、打包为一个轻量级容器,并在任何地方运行。Docker 会在软件容器中自动部署应用程序。 在本篇中,我将介绍如何 docker 化一...

    使用jar进行Java打包详解

    好,没关系,这就是我们的第一站:打包发布。 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是...

    详解微信小程序开发(项目从零开始)

    注意,这里只从项目代码上做解析,不涉及小程序如何申请、打包、发布的东西。(这些跟着微信官方文档的流程走就好)。好了废话不多说,看目录。 注: 小程序是一套特殊的东西,融合了原生和web端。他是一个不完整的...

    独立部署小程序基于nodejs的服务器过程详解

    完全自定义的部署小程序服务器, 不依托于腾讯云服务器体系. 以阿里云服务器为基础建立. 服务器语言选用nodejs. 目的 实现https基本访问请求 实现会话管理 实现socket长连接 一个基于socket的小游戏 源代码在...

    在docker中部署tomcat并且部署java应用程序的步骤详解

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 1、先说...

    Hadoop从入门到上手企业开发

    053 打包运行MyWordCount程序并监控Job运行 054 优化MyWordCount程序和讲解GenericOptionsParser 055 安装Hadoop Eclipse插件并使用Eclipse查看文件系统 056 使用Eclipse运行MyWordCount程序并解决...

    详解Vue项目编译后部署在非网站根目录的解决方案

    由于开发出来的项目是要部署在客户方,且客户并不想单独拿一个域名(或子域)来部署,这时,打包后的程序就要作一些配置方面的修改了。 修改配置文件 1、把打包后的资源引用修改为相对路径 找到 config/index.js 中 ...

    如何为Go程序创建一个最小的Docker Image详解

    之前给大家介绍了关于在docker中部署golang项目的相关内容,对大家的入门具有一定的参考价值,本文将会给大家介绍如何使用docker打包一个golang编写的应用程序,最终的产物就是一个Dockerfile文件,可别小瞧这短短...

    C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)

    下面小编就为大家带来一篇C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring Cloud中使用jib进行docker部署的步骤详解

    Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写 Dockerfile 或安装 Docker,而且可以直接集成到 Maven 和 Gradle中 —— 只需要将插件添加到构建中...

    Weblogic 8或9和MyEclipse 整合 Web 开发资料包

    Web应用程序打包 myeclipse部署weblogic项目出现问题 Weblogic 8和MyEclipse 5.5 整合 Web 开发 MyEclipse下如何调试EJB服务端代码(weblogic环境) WEBLOGIC部署 详细文档--贴图 eclipse下配置Weblogic9.10详细配置 ...

Global site tag (gtag.js) - Google Analytics