Mono Cecil 添加缺少的程序集
Mono Cecil add missing assembly
出于某种原因,当我尝试加载某些程序集并对其进行分析时,出现错误 Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly...
我真的不关心为什么会抛出这个异常,我知道缺少的程序集在哪里。
有办法处理类似 AppDomain.CurrentDomain.AssemblyResolve
的事件,但对于 Mono.Cecil?
我可以手动加载丢失的程序集,但我不知道如何。
那么,如何为 Mono.Cecil 加载程序集?
显然 Mono.Cecil 支持。
当您在 ReadParameters
中加载带有 AssemblyDefinition.ReadAssembly
的程序集时,您可以将 AssemblyResolver
属性 更改为您的解析器。
要创建解析器,只需继承 BaseAssemblyResolver
,例如:
private class CustomResolver : BaseAssemblyResolver
{
private DefaultAssemblyResolver _defaultResolver;
public CustomResolver()
{
_defaultResolver = new DefaultAssemblyResolver();
}
public override AssemblyDefinition Resolve(AssemblyNameReference name)
{
AssemblyDefinition assembly;
try
{
assembly = _defaultResolver.Resolve(name);
}
catch (AssemblyResolutionException ex)
{
assembly = ...; // Your resolve logic
}
return assembly;
}
}
就我而言,我在处理 .NET Core 3.1 项目时失踪了。
Install-Package Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator -Version 4.0.1
https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator/
出于某种原因,当我尝试加载某些程序集并对其进行分析时,出现错误 Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly...
我真的不关心为什么会抛出这个异常,我知道缺少的程序集在哪里。
有办法处理类似 AppDomain.CurrentDomain.AssemblyResolve
的事件,但对于 Mono.Cecil?
我可以手动加载丢失的程序集,但我不知道如何。
那么,如何为 Mono.Cecil 加载程序集?
显然 Mono.Cecil 支持。
当您在 ReadParameters
中加载带有 AssemblyDefinition.ReadAssembly
的程序集时,您可以将 AssemblyResolver
属性 更改为您的解析器。
要创建解析器,只需继承 BaseAssemblyResolver
,例如:
private class CustomResolver : BaseAssemblyResolver
{
private DefaultAssemblyResolver _defaultResolver;
public CustomResolver()
{
_defaultResolver = new DefaultAssemblyResolver();
}
public override AssemblyDefinition Resolve(AssemblyNameReference name)
{
AssemblyDefinition assembly;
try
{
assembly = _defaultResolver.Resolve(name);
}
catch (AssemblyResolutionException ex)
{
assembly = ...; // Your resolve logic
}
return assembly;
}
}
就我而言,我在处理 .NET Core 3.1 项目时失踪了。
Install-Package Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator -Version 4.0.1
https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator/