【问题标题】:On what basis a managed module is created in .net framework?在 .net 框架中创建托管模块的基础是什么?
【发布时间】:2015-04-20 13:54:12
【问题描述】:

我一直在通过 c# book 阅读 clr,它说

托管模块是标准的 32 位 Microsoft Windows 可移植可执行 (PE32) 文件或标准 64 位 Windows 可移植可执行 (PE32+) 文件 需要 CLR 执行。

stackoverflow 中的其他问题 What is a module in .NET? 这么说

模块是程序集中代码的逻辑集合

但我的问题是,这在逻辑上是如何收集的?依据是什么?

是否为单个 .cs 文件或用户定义类型或特定命名空间创建托管模块?

【问题讨论】:

  • 逻辑收集?你的意思是逻辑连接?
  • 你在谈论一个 assembly,链接的问题是在谈论一个 module。在 .NET 中不一样。一个程序集可以有多个模块,但这很不寻常。您所询问的“基础”由程序集链接器 al.exe 涵盖。它将模块粘合在一起以创建一个程序集。一个你永远不会使用的工具。现代计算机有足够的内存可以在一个编译步骤中构建一个程序集。
  • @HansPassant 那么你的意思是一个程序集包含一个托管模块?这是否意味着单个 .csproj 即程序集被编译成单个托管模块。如果是这样,您能否举例说明一个程序集可以有多个托管模块?
  • @YuvalItzchakov 不,我的问题是,单个托管模块中的中间语言代码包含单个 .cs 文件或单个类或单个命名空间或特定程序集中所有文件的编译代码?我很困惑,因为在书中 clr via c# 它说一个程序集可以有多个托管模块。

标签: c# .net module clr il


【解决方案1】:

http://blogs.msdn.com/b/junfeng/archive/2005/02/12/371683.aspx

以上链接回答了我的问题。

据我所知,当在一个程序集中使用多种语言时,会在一个程序集中创建多个托管模块。

这只是一种情况。在上面的链接中解释了创建托管模块的其他方案。

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多