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.

Reply via email to