IRibbonExtensibility needs to be ComVisible

When developing an Outlook add-in using VSTO 4, if you are implementing the IRibbonExtensibility interface (for customizing a Ribbon, for example) you might encounter cases where your Ribbon or menu items don’t appear in Outlook’s UI.

In those cases, you should check the following things first:

  1. Your XML is valid – invalid Ribbon XML will prevent your controls from appearing
  2. Your class should be marks as ComVisible:
    [ComVisible(true)]
    public class Ribbon : IRibbonExtensibility
    {
        //...
    }