How can I create a (VSTO) Office 2007 add-in using VS 2012?

Gary McGill picture Gary McGill · Sep 5, 2012 · Viewed 16.5k times · Source

Visual Studio 2012 does not appear to support Office 2007 (it only has project templates for Office 2010). If I want to create an add-in compatible with Office 2007, do I need to use Visual Studio 2010, or is there a simple way to do it with VS 2012?

If there is a way to do it in VS 2012, are there any restrictions/advantages, etc. in doing so?

Answer

SliverNinja - MSFT picture SliverNinja - MSFT · Sep 5, 2012

You can get VS 2012 working with Office 2007. First create an Outlook 2010 Add-In and modify the project file (.csproj) so that it will open in Office 2007 and not look for Office 2010 when run.

Here is the project settings change (Outlook example):

Source XPath:

//Project/ProjectExtensions/VisualStudio/FlavorProperties/ProjectProperties/@DebugInfoExeName

Old Value (Office 2010):

DebugInfoExeName="#Software\Microsoft\Office\14.0\Outlook\InstallRoot\Path#outlook.exe"

New Value (Office 2007):

DebugInfoExeName="#Software\Microsoft\Office\12.0\Outlook\InstallRoot \Path#outlook.exe"

After changing this project setting, when you fire up the debugger (F5) it will load the Outlook 2007 application instead of looking for Outlook 2010.


One of the major drawbacks to using VS 2012 for Office development is that deployment is now using InstallShield LE instead of Visual Studio Setup Projects. This is a major shift, but it seems MS is moving away from supporting native installers and letting others manage this burden. WiX is an alternative installer, but I have not tried it out. WiX (Windows Installer XML) still lacks the UI that is present with InstallShield LE or VS 2010 Setup Projects.

The only advantage of using VS 2012 for development is that development IDE is much faster.