Q:

Best way to structure an Excel VSTO project for multiple versions of Excel

I am converting a C# VSTO add-in to support multiple versions of Excel (2007, 2010, 2013).  My current plan is to have 4 projects in the solution, the core functionality and the AddIn projects.  My question is: is it possible to write the AddIn in such a way that it will work with all versions of Excel?  If not, is there a common Excel object model that would work? 
If there isn't a proscribed way to do it, I would extract out the functionality from the Excel object model into a set of classes/interfaces that could then pass through an adapter to get o the real objects, then have version specific projects that contain the adapters.  However, this is a lot of work I'd like to avoid.  
Thanks,
Erick

A:

Look at these two options for office version independent addins:

NetOffice is a free wrapper that does something similar to what you described in your second paragraph
Addin express is a similar (but commercial) framework 

For the second option the development looks something like this:

you select the lowest version of Office you wish to support
you write the code against the object model of that version

Even with that you will still find some differences in how different versions of Excel work.  For example this is one change that needs to be considered.