生成、打包、部署和管理应用程序及类型(下)
1.1 将模块合并成程序集
Clr操作的是程序集。它会加载包含清单元素据表的文件,根据清单来获取程序集中的其他文件名称。程序集特点:
(1)定义了可重用的类型
(2)用一个版本标记
(3)可以关联安全信息
使用程序集的好处:
(1)不同的类型用不同的文件,使文件能以增量方式下载,对购买、安装程序进行部分、分批打包/部署。
(2)可在程序集中添加资源和数据文件。
(3)程序集包含的各个类型可以用不同的编程语言来实现。
1.1.1 使用vs将程序集添加到项目中
在解决方案,右键添加引用的项目,选择 添加引用 来打开 引用管理器。
1.1.2 使用程序集链接器
除了编译器,还可用“程序集链接器”AL.exe创建程序。
1.1.3 为程序添加资源文件
(1)/resource可以获取任意资源,将文件内容嵌入最终的PE文件。
(2)/link[esource获取资源,不会嵌入,必须和其他程序集文件一起打包部署。
1.2 程序集版本资源信息
可在文件属性检查该资源。代码中调用system.diagnostics.file.versioninfo的静态方法getversioninfo,传递路径参数,可以获取该信息。
版本号格式:主版本号.次版本号.内部版本号.修订号
程序集有三个版本号。
(1)assembyfileversion存储在win32版本资源,clr不关心,提供公众看到的版本。
(2)assemblyinfomationalversion存储在win32版本资源,clr不关心,主要作用是指出包含该程序集的产品的版本。
(3)assemblyversion
存储在saaemblydef清单元素据表中,clr在绑定强命名程序集会使用到。唯一标识了程序集。
1.3 语言文化
除了版本号,程序集还将语言文化作为其身份标识的一部分。未指定具体语言文化的程序集称为语言文化中性 culture neutral。
专门创建一个程序集来包含代码和默认资源,新建一个或多个单独程序集包含语言文化资源(不包含代码)。
1.4 简单应用程序部署(私有部署的程序集)
对于Windows store 应用程序,vs会将应用程序所有必要程序集打包成一个。Appx.
对于非Windows store 桌面应用,程序集的打包方式没有任何特殊要求,打包一组程序最简单的方式就是直接复制所有文件。
在应用程序基目录或者子目录部署的程序集成为私有部署的程序集,这是因为程序集文件并不和其他任何应用程序共享。私有部署的程序集只需把它复制到一个应用程序的基目录,clr便会加载他们并执行其中的代码。需要卸载,删除即可,因为每个程序集都用元素据注明了自己引用的程序集,不需要注册表设置。
1.5 简单管理控制(配置)
用户或管理员经常需要控制应用程序的执行,可在应用程序目录放入一个配置文件。配置文件包含xml代码,能和应用程序关联,也可以和机器关联。
对于可执行应用程序(exe),配置文件必须在应用程序的基目录,采用exe文件全名作为文件明,再附加.Config拓展名。
对于asp.net web窗体应用程序,文件必须在web应用程序的虚拟根目录中,而且总是命名为Web.Config.