gpt4 book ai didi

c# - unmanaged.dll.manifest 文件的用途是什么?

转载 作者:行者123 更新时间:2023-11-30 21:26:02 26 4
gpt4 key购买 nike

我观察到带有 unmanaged.dll.manifest 文件标记的 unmanaged.dll 文件。在编辑器中打开此文件时,它似乎是普通的 XML,带有指向某些其他依赖管理的链接?组件。这似乎是最近发生的变化。不记得之前见过它们。

  • 为什么需要这些文件? (如果我不得不猜测,那就是加载依赖托管程序集和/或 CLR)
  • 这些文件还可以包含哪些有用的信息?它们是否也包含任何指向依赖的非托管 dll 的链接(这很好)

.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugMFC" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>

最佳答案

您所看到的称为“Side-by-side assemblies”(SxS)。 Microsoft 已将 .NET 并行机制扩展到非托管 DLL,现在称它们为“平台程序集”。 DLL 现在不是通过 DLL 名称执行链接,而是通过 list 加载。 .NET GAC 的等价物是文件夹\windows\WinSxS;这允许在一个系统上同时安装多个版本的 DLL,并且不同的应用程序可以绑定(bind)同一个 DLL 的不同版本。它还包括 .NET 提供的重定向功能;这主要是 list 所做的(允许重定向)。

list 中引用的 DLL(例如 Microsoft.VC90.DebugCRT)也是非托管的(即 native 代码)

应用程序 list 也有其他用途。我不知道细节,但记得 XP 中的主题选择也在 list 中指明。

关于c# - unmanaged.dll.manifest 文件的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348877/

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