【问题标题】:Not able to find AssemblyFactory class using Mono.Cecil无法使用 Mono.Cecil 找到 AssemblyFactory 类
【发布时间】:2011-12-26 18:35:20
【问题描述】:

我正在使用Mono.Cecil DLL 文件并编写此代码:

AssemblyDefinition sourceAssembly = AssemblyFactory.GetAssembly(assemblyPath);

我的项目没有被编译,因为它无法找到“AssemblyFactory”类。好像这个类根本不存在于 DLL 文件中。我添加了 mono.cecil.dll 文件作为对我的项目的引用。此类是否存在于 DLL 文件之外的某个位置,可能位于 .NET 级别的其他 DLL 文件中?

【问题讨论】:

  • 如果您还想了解有关 Mono.Cecil 的任何其他信息,我很乐意在单独的问题中提供帮助。与此同时,这个问题得到了回答。
  • 类似于 How to save a changed assembly using Mono.Cecil?(在 Mono.Cecil 的更高版本中不再存在 AssemblyFactory)。

标签: mono.cecil


【解决方案1】:

这仅仅意味着您使用的是最新版本的 Mono.Cecil,其中已删除了这种不推荐使用的类型。

请查看 Cecil wiki 上的 migration page 以了解如何为 Cecil 0.9 转换代码。你会看到你只需要将这一行改为:

var assembly = AssemblyDefinition.ReadAssembly(assemblyPath);

【讨论】:

  • 非常感谢。它对我有用。直到我没有得到答案,我才从网站下载了一个工作项目的源代码。正如我所提到的,它包含“AssemblyFactory”的用法。该项目包含我在项目中使用并使用的程序集 lib.dll。
  • 另外,类型 CilWorker 被重命名为 ILProcessor (Mono.Cecil.Cil.ILProcessor),以及一个属性为了得到它,CilWorker 被重命名为 GetILProcessor(例如,Mono.Cecil.Cil.MethodBody.GetILProcessor.Body MethodDefinition 上的 .GetILProcessor)。来自Cecil FAQ 的代码示例使用旧的 - 更新?
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 2017-04-12
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多