You can write an assembly/dll in C++/CLI that exposes functions in as standard DLL exports. You could then use these as a proxy for methods in a C# assembly if you want.
However, this doesn't mean it is a good idea. Forcing the CLR to load into a process is a pretty drastic step, and one that a plug-in author should not force on its host.
For example, Microsoft strongly recommeds that shell extension authors (ie. plug-in code for Windows Explorer) do not write those plug-ins (via COM) in .NET, because they don't want the CLR loaded into such a critical applicatoin.
It is possible (though unlikely) that the application will want to load the CLR itself and some point, and if a plug-in has already loaded a given version then this may produce versioning problems. Also the CLR can not be unloaded from a process, whereas the host application may expect to be able to unload plug-ins.