Hi,

I don't see any obvious issue here.

Is peverify able to resolve the assembly in which the method is defined?

Jb

On Tue, May 27, 2014 at 10:52 AM, Lior Tal <[email protected]> wrote:
> Hi All,
>
> I'm using Mono.Cecil to dynamically generate an assembly. I'm encountering
> an error when attempting to verify the generated assembly using PEVerify:
>
> An example for an error:
>
> [IL]: Error: [D:\Output.dll :
> com.flurry.org.codehaus.jackson.map.util.Comparators::getArrayComparator][offset
> 0x0000000A] Unable to resolve token.
>
> In this offset in IL i am calling a method that is referenced from another
> assembly. I am not sure whether i am using the API correctly.
>
> Here's my code:
>
>             var assemblyDefinition = new AssemblyNameDefinition("Output",
> new Version(1, 0, 0, 0));
>             var asm = AssemblyDefinition.CreateAssembly(assemblyDefinition,
> "Output", ModuleKind.Dll);
>
>             // The generated assembly imports a type from the current
> assembly to call its method.
>             var proxy = asm.MainModule.Import(typeof(JavaProxy));
>             var td = proxy.Resolve();
>
>             var methodDefinition = td.Methods.First(md => md.Name ==
> "Call");
>             var methodReference = asm.MainModule.Import(methodDefinition);
>
> Later on, adding a call to the methodReference:
>
>           method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldstr,
> newType.FullName));
>           method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldstr,
> method.Name));
>           method.Body.Instructions.Add(Instruction.Create(OpCodes.Call,
> methodReference));
>           method.Body.Instructions.Add(Instruction.Create(OpCodes.Ret));
>
>
> What am i doing wrong?
>
> Any help would be appreciated.
>
> Thanks,
> Lior
>
>
> --
> --
> --
> mono-cecil
> ---
> You received this message because you are subscribed to the Google Groups
> "mono-cecil" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
--
mono-cecil
--- 
You received this message because you are subscribed to the Google Groups 
"mono-cecil" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to