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

2.1 .Net Framework部署目标

2.2将类型生成到模块中

本节讨论如何将包含多个类型的源代码文件生成为一个可部署的文件。

System. Console是Microsoft已经实现好的一个类型,用于实现这个类型的各个方法的IL代码存储在MSCorLib.dll文件中。

2.3元数据概述

Program.exe中到底包含什么内容呢?

一个托管PE文件有4个部分组成:PE32(+)头、CLR头、元数据以及IL。

PE32(+)头是Windows要求的标准信息,

元数据是一个二进制数据块,由定义表(definition table)、引用表(reference table)和清单表(manifest table)构成。

对于这个如此小的Program.exe应用程序,PE头和元数据占据了文件相当大的一部分。当然随着应用程序规模的增大,它会重用它的大部分类型以及对其他类型

程序集的引用,造成元数据和头信息在整个文件中所占的比例逐渐减小。

时间: 2024-10-19 00:39:35

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

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

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

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文件头和程序集清单,唯一不同的是弱签名程序集没有公钥,也不进

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

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

【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库完成一个法律咨询管理系统.本系统要求类似网页后台管理效果,并且基于局域网内,完成多客户端操作同一数据库,根据权限不同分别执行不同功能模块.核心模块为级联统计类型管理.数据库咨询数据扇形统计.树的操作.咨询数据的管理.手写分页.Excel数据的导出.多用户操作服务器数据等.并支持多用户同时操作,远程连

Spring boot(4)-应用打包部署

摘自: http://blog.csdn.net/hguisu/article/details/51072683 1.Spring Boot内置web spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat.weblogic等等),当然在此之前你要对程序入口做简单调整. 对server的几个常用的配

使用IntelliJ IDEA和Maven构建Java web项目并打包部署

爱编程爱分享,原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/6120375.html 一.背景 现在越来越多的人使用IntelliJ IDEA工具进行Java的开发,以前也对IntelliJ IDEA有了解过,但是一直没有去使用. IntelliJ IDEA比Myeclipse好用多了 ,功能也非常的强大,google公司Android Studio就是基于IntelliJ IDEA开发的, 开发效率非常高,各种智能提示等等,具体的大家可以去了