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开关,不去引用该程序集

响应文件:

类似于配置文件一样,可以统一设置命令行中的各项开关

元数据概述

元数据是一个二进制数据块,由几个表构成,为三个类型:定义表,引用表,清单表

常用定义表:

ModuleDef:标识模块的记录项

TypeDef:标识类型的记录项

MethodDef:模块中各个方法的记录项

FiledDef:模块中每个字段的记录项

ParamDef:模块中每个方法中参数的记录项

PropertyDef:模块中每个属性的记录项

EventDef:模块中每个事件的记录项

常用引用表:

AssemblyRef:模块引用每个程序集的记录项

ModuleRef:当前模块引用的类型可能是由别的PE模块实现,所有那些模块在这个表中都有一个对应的记录项

TypeRef:模块引用的每个类型在这个表中的记录项

MemberRef:模块引用的成员(字段、方法、属性、事件)

程序集是一个或多个类型定义文件及资源文件的集合,是进行重用、版本控制和应用安全性设置的一个基本单元,它允许将类型和资源文件划分到单独的文件中。

生成一个PE文件程序集时,会在PE文件中嵌入一个标准的Win32版本资源,在应用程序中可以使用System.Diagnostics.FileVersionInfo的static方法GetVersionInfo来获取并检查这些信息

语言文化

标记了一种具体的语言文化的程序集称为附属程序集

时间: 2024-10-27 07:21:52

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

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

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

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

1. 概述 本章重点解释如何生成仅供自有应用程序使用的程序集. 2. 名词解释 ① 响应文件:是一个文本文件(扩展名rsp),包含一组编译器命令行开关.执行CSC.exe时可以直接读取并应用这些开关. 3. 主要内容 3.1 部署目标 ① 解决 DLL hell. ② 解决 安装时的复杂性. ③ 增强 安全性. 3.2 将类型生成到模块中 ① CSC.exe 3.3 元数据概述 元数据是一个二进制数据块,由几个表组成.这些表分为三个类别:定义表.引用表和清单表. ① 常用的定义表:ModuleD

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

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

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

目录: 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.安装新应用程序时,它可能莫名奇妙破

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

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

Vs2010winform程序打包部署

1.新建安装部署项目 打开vs2010,选择文件->新建->项目->其他项目类型->安装和部署->选择安装项目.如下图: 2.开始制作 点击如上图中确定后进入项目开始制作: 2.1点击"应用程序文件夹"右击选择添加->文件夹或者双击"应用程序文件夹"在右边的空白处右击选择添加->文件夹.如下图: 2.2将自己开发项目中对应的文件添加到安装部署对应的文件夹中,这里我就把自己开发项目中的Dict文件夹中的文件添加到安装部署项目中

SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)

1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操作流程,在整个 Rest 架构里面,会存在有大量的微服务的信息. 在 SpringCloud 之中使用了大量的 Netflix 的开源项目,而其中 Eureka 就属于 Netflix 提供的发现服务组件,所有的微服务在使用之中全部向 Eureka 之中进行注册,而后客户端直接利用 Eureka 进

Windows程序的打包,部署(vs项目打包vs2013)---ShinePans

Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标:                    部署机制:    三类文件  bin文件. obj文件.My Project文件 bin:   bin/debug     bin/release 这两个目录存放编译的结果以及可执行程序 exe obj:用来保存每一个模块的编译结果,这是.net的优势所在,java程序猿所羡慕的地方,由于微软有一个强

VS2013程序打包部署(图解)

首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方便程序员调试程序:Release模式通常叫做发布模式,不包含调试信息,但是它对代码进行了优化,使程序代码和运行速度都是最优的.因此我们在发布系统之前,一定要保证系统没有Bug,也就是在Debug模式下能够成功生成解决方案.解决方案配置转换方式详见下图: 现在我们只需要保证Debug模式下没问题就行,暂时不用管Release模式. 接下来就是我们今天的