Managed add-ins still requiring ComVisible(True) attribute
While add-ins for Visual Studio .NET 2002/2003 required COM registration (COM Interop) and registration for Visual Studio using the Windows registry, Visual Studio 2005 introduced XML-registration (.AddIn file) and removed the need for COM registration, both a big advance.
Then, one day, visiting the assemblyinfo.vb file that is not very much visited, you notice the following line:
and then you think that you can change it to:
At this point, if you try to load the add-in after this change you get an exception:
Error 80004002 (No such interface supported)
I blogged about this problem some months ago and today I have filed a bug report for MS to fix it:
Error 80004002 (No such interface supported) in add-in when ComVisible attribute is set to False
Note 1: while the add-in wizard sets the ComVisible attribute to True at assembly level, actually only the Connect class needs to have such attribute.
Note 2: since the ComVisible attribute uses a boolean parameter that can be set to true o false, one may wonder which is the behavior if the attribute is missing at all. The answer is in the MSDN docs: (public) types are visible to COM by default, the attribute is only needed to hide them to COM. So, if seeing <Assembly: ComVisible(True)> in your code bothers you too much, you can actually delete the line and the effect would be the same.