• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Hing
沉浸在技术的海洋,通过学习与讨论,只有不断的提高,才有可能去创造与实现.
博客园    首页    新随笔    联系   管理    订阅  订阅
CLR VIA C# 笔记一(1.2~1.3)

1.2 将托管模块并成程序集

 

CLR是和程序集一起工作的.

程序集 是一个或多个模块/资源文件的逻辑性分组,它是重用、安全性以及版本控制的最小单元,它的逻辑表示和物理表示区是分开的,根据不同的编译器或工作可以生成单文件或多文件的程序集。在CLR世界里,它相当于一个“组件”。

 


 

在程序集的模块中包含了引用程序集有关的信息,这就使程序集能够自描述(self-describing),能让CLR不需要通过注册表或Active Directory Domain Services(ADDS)就可以找到程序集的直接依赖对象(immediate dependency)并执行程序集中的代码.由于无需额外的信息,所以相对于非托管组件,程序集部署起来容易得多.

 

 

1.3 加载公共语言运行时

 

  要使用CLR管理程序集中的代码执行,必须在目标机器上安装好.NET Framework

    检查%SystemRoot%\System32目录中是否存在MSCorEE.dll就可以判断.NET Framework是否已安装.

    CLRVer命令,查看机器上所有CLR版本

 C#编译器提供了一个/platform命令行开关选项,这个开关允许指定程序集只能在32位Windows或者64位Windows或者只能在63位的Intel Itanium机器上使用,默认选项是anycpu,,表明在任何版本的Windows都可以使用.这就要设置项目的目标平台,即打开项目的属性页,从”生成”选项卡上的”目标平台”选择选项.如图:


 

运行一个可执行文件时,Windows会检查这个EXE文件的头,确保当前的CPU符合要求.而Windows的64位版本提供了一个WOW64(Windows on Windows64 )允许运行32位的Windows.

   Windows检查好EXE文件头,决定创建32位、64位或是WOW64进程之后,会在进程的地址空间中加载MSCorEE.dll的对应版本.进程的主线程调用MSCorEE.dll中定义的一个方法,用来初始化CLR,加载EXE程序集,然后调用其入口方法(Main),最终托管的应用程序启动并运行

posted on 2011-06-09 20:15  Pacer  阅读(608)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3