gpt4 book ai didi

windows - 应用程序 list 和程序集 list 之间的区别

转载 作者:可可西里 更新时间:2023-11-01 10:09:31 24 4
gpt4 key购买 nike

应用程序 list 和程序集 list 有什么区别?分别用在什么地方?在 .dll 或 .exe 资源中找到两者中的哪一个? (或者两者都可以?)。

抱歉,如果一次有太多问题,但如果有人能向我解释一下,那将非常有帮助。我问这个的原因是我希望能够从 PE 文件中嵌入的 list 中提取信息。我找到了 list 的这些描述,但有两个,我不确定要遵循哪一个:

Application manifest description
Assembly manifest description

编辑:不,我不想使用任何 API 调用。我自己写的。

最佳答案

简而言之,两者是完全不同的概念,不幸的是名称相似。

应用程序 list 是嵌入或与 PE 二进制文件(托管或 native )一起分发的 XML 文件,向操作系统加载器提供有关 SxS 程序集依赖项、所需提升等事项的说明, 操作系统版本兼容性等

程序集 list 是 CLI 程序集中的一个部分,说明托管程序集的依赖项、构成程序集的文件、程序集的公钥、类型导出、CLR 标志等。您可以使用 ILDASM.exe 或大多数 .NET 反编译器检查程序集的 list 。

ECMA 335(CLI 规范)第 I.9.6 节的相关摘录:

Manifests: Every assembly has a manifest that declares which files make up the assembly, what types are exported, and what other assemblies are required to resolve type references within the assembly. Just as CLI components are self-describing via metadata in the CLI component, so are assemblies self-describing via their manifests. When a single file makes up an assembly it contains both the metadata describing the types defined in the assembly and the metadata describing the assembly itself. When an assembly contains more than one file with metadata, each of the files describes the types defined in the file, if any, and one of these files also contains the metadata describing the assembly (including the names of the other files, their cryptographic hashes, and the types they export outside of the assembly).

注意:

  • 所有托管程序集必须类似的程序集 list 、可执行文件和库;
  • 所有 native 二进制文件、可执行文件和库,可能有应用程序 list 。

关于windows - 应用程序 list 和程序集 list 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com