转自:http://blog.csdn.net/zhang_xinxiu/article/details/9099757网络
上篇博客稍微总结了下.NET程序的编译机制,下面了解些有关程序部署的一些机制。在.NET程序包下有三个文件夹分别是bin文件、obj文件、My Project文件,他们分别封存着程序的组成部分。
bin目录用来存放程序的编译结果,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,在编译后生成的程序文件会存放在该目录下。固然咱们也能够手动修改程序的输出路径,修改方法:项目属性—>配置属性—>输出路径来修改。
obj目录是用来保存每一个模块的编译结果,用来放置程序生成时的中间文件。程序不会直接生成出可用的文件,而是由源程序生成中间文件,再编译中间文件生成可执行文件的。在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。由于每次编译时默认都是采用增量编译,即只从新编译改变了的模块,obj保存每一个模块的编译结果,用来加快编译速度。是否采用增量编译,能够经过:项目属性—>配置属性—>高级—>增量编译来设置。
My Project目录定义你程序集的属性,被称为项目属性文件夹。目录下的AssemblyInfo类文件,用于保存程序集的信息,如名称,版本等,这些信息通常与项目属性面板中的数据对应,不须要手动编写。
在程序编译生成后,程序的源文件就不在重要了,重要的是DLL、EXE、Config等的程序的组件,有了程序的组件程序就可以正常运行。因此在发布制做安装程序时咱们只须要将程序的组件打包便可。工具
VS2012中打包工具被看作程序集,在使用时和程序集同样被建立到程序解决方案下。须要咱们作的是添加项目便可。可是对于初次使用的朋友来讲,咱们须要根据提示一步步的先下载安装该打包工具。具体的安装方法再也不详述,网上资料不少 。.net
InstallShield安装完成后,执行如下步骤右键解决方案-->添加-->新建项目-->其余项目类型-->安装和部署,具体操做以下图:设计
在继续往下操做前必定要选择发布,在启动项目的属性内设置发布文件夹默认路径设置为安装系统的文件夹。code
Application Information主要设置程序在安装时显示的有关程序的一些信息,如:程序的开发者、程序开发公司,程序安装图标和程序简介等。orm
在下图中的第四步中添加程序文件时会有主输出、源文件等多个选项框,其实它的生成机制和.NET程序的编译机制是相同的。下图中的第五部显示出的UI.主输出,在生成安装文件后程序包中包含了与UI层进行交互引用的其它层的引用文件,但不会生成和UI层(启动层)没有相连的组件,咱们只能经过手动添加。同时选中本身release下的文件blog
程序源文件是程序运行的资源文件,也包含了程序的源码文件。若是不须要打包源文件的话,这步能够省略。继承
若是开发的程序中使用了第三方控件,这时在安装时每每须要注册到目标系统中,一样Install也为用户提供了此功能。Install可以经过设置dll文件或OCX文件的注册,首先要添加注册的文件,而后经过设置文件的安装属性来指定注册与否,设置以下图。资源
Application Shortcuts 程序快捷打开方式,Install为用户提供了两种显示形式,分别是Win菜单和桌面。下图显示了设置的一些注意项,此阶段也能够设置程序的显示图标。开发
通常的应用程序在安装时不须要考虑程序的注册表项,此步骤能够不用设置。
根据本身的须要进行设计便可。
设置完上面的步骤后,咱们的打包程序基本设置完成,可是在一些状况下咱们每每要打包.net环境或者其它程序运行所须要的Windows环境,Install也为咱们很好的设计了环境的打包。
在选择须要打包的环境时必定要注意文件的名称,通常每每是须要直接将环境安装包放到安装exe中这时咱们要选择名称为Client的文件,如我想要将.NET Framework 4.0的完成安装包集成到exe中,这时我要选中Microsoft .NET Framework 4.0 Clinet而后等待Vs将该环境的安装包下载到程序集文件夹中便可。另一定要注意名称后面的(Web Download)括号的内容说明文件只是一个连接,在安装时须要网络下载才能够实现完成安装。
上面的安装步骤执行完成后便可生成解决方案,可是生成的文件会放在DVD-5文件夹内,想要使用安装文件的话就必须拷贝整个文件夹不然安装会出错,这样内容很繁琐,并且给客户的安装体验度也不好,那应该有其它的解决办法吧,是的,以下图所示,咱们将使用SingleImage的安装包,将全部文件集成到一个Setup.exe中,再次安装的时候只须要一个Setup.exe便可。
若是咱们的安装文件内没有打包程序运行环境那上面的操做步骤就彻底能够知足只须要一个Setup.exe便可的要求了,但若是须要将安装环境打包到Setup.exe中的话还必需要通过下图的步骤。
好了设置完成后,接下来就是生成解决方案了或者是只生成单个程序集,这时候安装文件就只有一个setup.exe了,以下图。
操做完上述步骤后,程序打包基本设置已经完成,接下来要作的就是生成解决方案。生成解决方案后会在安装程序集下面生成一个名为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处没有发现和文件名相关的语言库。