Hi Pavels ,
How can I put the changed dll in GAC ? If I signed it with mysnk, it's
PublicKeyToken will changed,and it would not works well as before.
在 2016年3月1日星期二 UTC+8下午8:58:53,Pavels写道:
>
> MySql.Data.dll is a signed dll and changing it with mono would result in
> an unsigned dll.
> + check your GAC, probably if you have MySQL driver installed in may have
> put MySql.Data.dll in a GAC, so .NET would try to use version from GAC.
>
> On Monday, February 29, 2016 at 6:53:37 PM UTC+2, Gray wrote:
>>
>> HI,
>>
>> I am Injecting code into the MySql.Data.dll with Mono.cecil,but it
>> doesn't work.It seemed to be working - if I decompile the assemblies with
>> ILSpy they show the injected code is there.
>> I just want to add Console.WriteLine("run method Open") into Method
>> Opne();
>>
>> static void Main(string[] args)
>> {
>> AssemblyDefinition asm =
>> AssemblyDefinition.ReadAssembly("F:\\MySql.Data.dll");
>> foreach (TypeDefinition type in asm.MainModule.Types)
>> {
>> //
>> if (type.Name.Equals("MySqlConnection"))
>> {
>> foreach (MethodDefinition method in type.Methods)
>> {
>> //
>> if (method.Name == "Open")
>> {
>>
>> var ilProcessor = method.Body.GetILProcessor();
>>
>> var firstInstruction =
>> ilProcessor.Body.Instructions[0];
>> Instruction insStr = ilProcessor.Create(OpCodes.Ldstr, "run method Ope");
>>
>>
>> ilProcessor.InsertBefore(firstInstruction, insStr);
>> MethodReference refernce =
>> asm.MainModule.ImportReference(typeof(Console).GetMethod("WriteLine",
>> new Type[] { typeof(string) }));
>> Instruction insCall = ilProcessor.Create(OpCodes.Call,
>> refernce);
>> ilProcessor.InsertAfter(insStr,insCall);
>> }
>> }//end for MethodDefinition
>> }
>> }//end for TypeDefinition
>> asm.Write("F:\\MySql.Data.dll");
>> }
>>
>> I write a test code to run the mehod "Open" ,but it doesn't print "run
>> method Open" even "Console.WriteLine("run method Open");" has been in mehod
>> "Open".
>> Can you please help me to resolve the error.
>>
>> Thanks,
>> Gray
>>
>
--
--
--
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.