gpt4 book ai didi

c# - .NET 对系统程序集的反射在 System.Data.dll 上失败

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:28 25 4
gpt4 key购买 nike

我有一个语言编译器,我刚刚更新到目标 .NET 4.0,框架程序集的元数据生成器现在在 System.Data.dll 上失败,而其他所有工作正常(mscorlib、System 等)

元数据生成器简单地加载程序集,反射(reflect)所有类型和成员信息,并为该语言生成一个 stub 类。

我正在使用 Assembly.Load() 和/或 Assembly.ReflectionOnlyLoad()

Could not load file or assembly 'file:///c:\windows\Microsoft.NET\framework\v4.0.30319\System.Data.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.

它是为“AnyCPU”构建的。我正在运行安装了 .NET 4.5 更新的 Windows 7/x64。

最佳答案

如果您使用 corflags 工具来分析程序集,您应该看到 ILONLY: 0 用于 System.Data.dll 而其他(mscorlib、System)ILONLY: 1。有关 ILONLY 的更多信息,请访问 here。 .

因此,程序集的构建方式不同,您不应期望反射适用于所有人。System.Data.dll 似乎是一个混合模式程序集,它始终依赖于位数。 p>

如果您不能以 32 位运行您的应用程序以加载 32 位程序集,您可能会考虑 Mono.Cecil,如@xmojmr 所说,如 it supports reading mixed-mode assemblies .

关于c# - .NET 对系统程序集的反射在 System.Data.dll 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193726/

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