第二章 生成、打包、部署和管理应用程序及类型

1. 概述

  本章重点解释如何生成仅供自有应用程序使用的程序集。

2. 名词解释

  ① 响应文件:是一个文本文件(扩展名rsp),包含一组编译器命令行开关。执行CSC.exe时可以直接读取并应用这些开关。

3. 主要内容

  3.1 部署目标

    ① 解决 DLL hell。

    ② 解决 安装时的复杂性。

    ③ 增强 安全性。

  3.2 将类型生成到模块中

    ① CSC.exe

  3.3 元数据概述

     元数据是一个二进制数据块,由几个表组成。这些表分为三个类别:定义表、引用表和清单表。

    ① 常用的定义表:ModuleDef、TypeDef、MethodDef、FieldDef、ParamDef、PropertyDef、EventDef。

    ② 常用的引用表:AssemblyRef、ModuleRef、TypeRef、MemberRef。

    ③ 清单表:AssemblyDef、FileDef、ManifestResourceDef、ExportedTypesDef。

  3.4 将模块合并成程序集

    3.4.1 使用Visual Studio IDE 将程序集添加到项目中。

    3.4.2 使用程序集链接器(AL.exe)。

    3.4.3 为程序集添加资源文件。

  3.5 程序集版本资源信息

    AL和CSC程序 生成一个PE文件程序集时,还会在PE文件中嵌入一个标准的Win32版本资源。

    版本号格式:major(主版本号)+minor(次版本号)+build(内部版本号)+revision(修订号)。

  3.6 语言文化

    除了版本号之外,程序集还将语言文化作为其身份标识的一部分。

  3.7 简单应用程序部署

    部署到和应用程序相同目录中的程序集称为 私有部署的程序集。

  3.8 简单管理配置

    .exe.config , web.config , machine.config .

4. 总结

  生成程序集有多种方式供选择。私有部署是推荐的方式。    

时间: 2024-08-06 07:18:24

第二章 生成、打包、部署和管理应用程序及类型的相关文章

生成、打包、部署和管理应用程序及类型(二)

1    生成.打包.部署和管理应用程序及类型 1.1   .net framework 部署目标 Windows一直不稳定和过于复杂(其实也很封闭,逐渐开放,如core),微软认为主要原因是: (1)应用程序来自微软或其他厂商的dll,多个厂商的代码带来复杂性.安装新程序会破坏原有程序,带来dll hell. (2)安装复杂性.大多数应用安装的时候会影响到系统的全部组件. (3)安全性.安装程序会带来各种文件,许多不同公司开发的. 1.2   将类型生成到模块中 响应文件包含一组编译器命令开光

第二章 生成丶打包丶部署和管理应用程序及类型

目录: 2.1 .NET Framerwork部署目标 2.2 将类型生成到模块中 2.3 元数据概述 2.4 将模块合并成程序集 2.5 程序集版本资源信息 2.6 语言文化 2.7 简单应用程序部署(私有部署的程序集) 2.8 简单管理控制(配置) 2.1 .NET Framework部署目标 Windows 多年来一直因为不稳定和过于复杂而口碑不佳. 有及方面原因.首先所有应用程序都要使用动态链接库(Dynamic-Link Library,DLL) 1.安装新应用程序时,它可能莫名奇妙破

第2章 生成、打包、部署和管理应用程序及类型

2.1 .Net Framework部署目标 2.2将类型生成到模块中 本节讨论如何将包含多个类型的源代码文件生成为一个可部署的文件. System. Console是Microsoft已经实现好的一个类型,用于实现这个类型的各个方法的IL代码存储在MSCorLib.dll文件中. 2.3元数据概述 Program.exe中到底包含什么内容呢? 一个托管PE文件有4个部分组成:PE32(+)头.CLR头.元数据以及IL. PE32(+)头是Windows要求的标准信息, 元数据是一个二进制数据块

02.生成、打包、部署和管理应用程序及类型

使用csc.exe,通过命令行来编译源代码,生成IL代码,如下 csc.exe /out:Program.exe /t:exe /r:MSCoreLib.dll Program.cs 意义:指示C#编译器生成一个名叫Program.exe的可执行文件 MSCoreLib.dll是一个特殊的文件,它包含所有的核心类型:Byte,Char,String,Int32等等,因为操作非常频繁,C#编译器会自动引用该程序集,所以上述的命令行代码可以省略/r开关,也可以使用/nostdlib开关,不去引用该程

.NET那点事 (03)生成、部署和管理

生成.部署和管理1 如何生成强签名的程序集2 如何把程序集放入GAC中3 延迟签名及其作用4 程序集的版本分哪几部分 1 如何生成强签名的程序集在生成程序集时,CLR提供了两种可选类型:强签名程序集.弱签名程序集. 强签名程序集是一个带有公钥和数字签名的程序集,每个强签名都可以由四个元素来唯一标识,它们分别是:文件名.版本号.语言文化和公钥.这些信息都被包含在程序集的清单之中.相对于强签名程序集,弱签名程序集拥有完全一样的元数据.CLR文件头和程序集清单,唯一不同的是弱签名程序集没有公钥,也不进

Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

第一章 Thread导论 为何要用Thread ? 非阻塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ? Thread是所在主机执行的应用程序任务(task). 只有一个线程的例子: public class Factorial { public static void main(String[] args) { int n = 5; System.ou

第二章、linux的时间管理

第二章.linux的时间管理 linux系统一般存在两个时间,一个属于linux操作系统的系统时间,系统时间受操作系统影响,可能会出现时间不准确,但另一个真实硬件上的时间,也就是用纽扣电子持续供电的硬件时间,误差是非常小的. 一.如何查看两种不同的时间 查看系统时间: date 例子: [[email protected] ~]# date Thu Jan 21 12:44:21 CST 2016 查看硬件时间: hwclock 或 clock 例子: [[email protected] ~]

第二章 基于二进制进行权限管理的理论知识

源代码GitHub:https://github.com/ZhaoRd/Zrd_0001_AuthorityManagement 1.介绍 第一章主要是介绍了这个DEMO的来由和主要使用的技术,这章内容主要是介绍如何通过二进制的位运算进行权限控制的内容. 第一章发布之后,有不少网友.园友反映程序代码运行不起来,很感谢您们的反馈,刚刚进行了代码修复,已经同步到github,感兴趣的朋友可以加我QQ! 2.二进制的位运算以及如何进行权限判断 基于二进制的权限管理,这个内容是我在两年前接触到过的一个知

02.第二章_C++ Primer学习笔记_变量和基本类型

2.1  基本内置类型 2.1.1  算术类型 算术类型包括两类:整型和浮点型 2.2  变量 2.3  复合类型 2.4  const限定符 2.5  处理类型 2.6  自定义数据结构