Deine Interface-Methoden sollten stdcall oder safecall sein. (letzteres wäre vllt. besser)
Bei den Datentypen solltest du auch auf Interop achten. Strings sollten zum Beispiel WideString sein.
Danach sollte man Plugins in allen möglichen Sprachen schreiben können.
Für alle MSBuild-kompatiblen .Net-Sprachen ginge mein
Nuget Package.
Du könntest auch ein eigenes Plugin
SDK für .Net schaffen.
In .Net hat sich über die Jahre das Service locator pattern ganz gut für sowas bewährt. Schaue dir dazu mal Beispiele für IServiceProviver an.
Lasse dir kein Ohr wegen MEF abkauen. Das wäre für deine Zwecke viel zu frickelig.