That's definitely possible: It's even been already done :) I suggest you look into mono-api-info and its companion mono-api-diff:
https://github.com/mono/mono/tree/master/mcs/tools/corcompare Jb On Fri, Nov 14, 2014 at 1:03 PM, David Rutten <[email protected]> wrote: > We're looking to write some code that tests to see if a plugin is compatible > with our current SDK. Basically we're still breaking our SDK on a regular > basis but we do not wish to do a blanket reject of all plugins that were > compiled against an older SDK. > In addition to that, it would be nice to know exactly which types/methods > are no longer compatible. Can we use Cecil to accomplish something akin to > this? > > To put it in code: > > /// <summary> > /// Test a collection of assemblies to see if they use types or methods > which do not exist. > /// </summary> > /// <param name="assembliesToTest">Assemblies to test for > compatibility.</param> > /// <param name="assembliesToTestAgainst">Assemblies to test > against.</param> > /// <param name="messages">Collection of errors if assemblies are not > compatible.</param> > /// <returns>True if all assemblies are compatible, false if not.</returns> > bool TestForAssemblyCompatibility(IEnumerable<Assembly> assembliesToTest, > IEnumerable<Assembly> assembliesToTestAgainst, out IEnumerable<string> > messages); > > > Any advice on whether this is possible using Cecil and what types to use to > accomplish this most welcome. > > -- > -- > -- > 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.
