It does. "Unable to resolve token" is a pretty broad error message,
and it might indicate that peverify is unable to resolve the assembly
in which the reference is defined.

Jb

On Tue, May 27, 2014 at 1:00 PM, Lior Tal <[email protected]> wrote:
> Not sure. Actually the referenced assembly was not placed in the same folder
> as the tested assembly. It sjould probably fail...
>
> I thought peverify only verified the integrity of the tested assembly,
> without resolving dependencies.
>
> On 27 May 2014 13:27, "Jb Evain" <[email protected]> wrote:
>>
>> 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.
>
> --
> --
> --
> 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