Your Excel-DNA can have all the ribbon and Custom Task Pane functionality built in.
But you can't mix Excel-DNA and VSTO (everything in the Microsoft.Office.Tools.* namespace) in a single add-in.
The get hold of the COM Application object inside your Excel-DNA add-in, you add a reference to the interop assemblies (Microsoft.Office.Interop.Excel.dll and Office.xll) and then call ExcelDnaUtil.Application - this returns the Application object for the current Excel process, and is an object of type Microsoft.Office.Interop.Excel.Application. From there you have access to the COM object model as usual.
For the ribbon, you can export the CustomUI XML from the VSTO designer, and then add to your add-in a class derived from ExcelRibbon:
[ComVisible(true)]
public class MyRibbon : ExcelRibbon
{
public override string GetCustomUI(string RibbonID)
<ribbon>
<tabs>
<tab id='CustomTab' label='My Tab'>
<group id='SampleGroup' label='My Sample Group'>
<button id='MyButton' label='My Second Button' image='M' size='normal' onAction='OnButtonPressed'/>
</group >
</tab>
</tabs>
</ribbon>
}
From Excel-DNA you are working directly with the Office ribbon xml and COM callbacks, so you don't have the high-level event wrappers (e.g. for the button click event) that the VSTO classes give you. If your ribbon is very complicated, you might want to make some wrappers for yourself, but for a simple ribbon it shouldn't be a problem.
For the Custom Task Pane, you make some UserControl (maybe what you have designed for the VSTO project), and then to display it you call: CustomTaskPaneFactory.CreateCustomTaskPane(...) (in the ExcelDna.Integration.CustomUI namespace)
One advantage of putting the ribbon and CTP support in your Excel-DNA, is that you don't need admin rights or to install anything.
Please write back if you run into any problems moving your VSTO code into your Excel-DNA add-in.
It's not a trivial task, but the end result should be much simpler to deploy and support over the long term.
-Govert