Hi Yinru,
Each type in a .NET assembly may be COM visible or not.
The assembly attribute [assembly:ComVisible(true/false)] which is set
through that interface, sets the default visibility for the assembly.
If the assembly attribute is not present, the default is for all
compatible types to be COM visible.
The assembly default can be overridden by a [ComVisible(true/false)]
attribute on the particular type.
The class for your ExcelRibbon (and any RTD server classes and any
UserControls for Custom Task Panes) must be COM visible.
So in your case, you can either make the whole assembly COM-Visible
with the checkbox, or uncheck the checkbox and add the attribute to
your ExcelRibbon class:
[ComVisible(true)]
public class MyRibbon : ExcelRibbon {}
Note that the "Make assembly COM-Visible" checkbox is a totally
different issue to the "Register for COM Interop" build step, which
does registration in the registry of your assembly. This step is not
needed for your Excel-DNA add-in.
-Govert