We are developing an C# application based on a plugin architecture using MEF.
The main application is just a basic framework and it's modularized functionality will be provided by plugins that the user will have to purchase.
I don't really want to have separate licence keys for each plugin, but do need to take reasonable precautions so that the user does not just buy one copy of a plugin and then install it in a dozen instances of the application.