VSTO is great if you only need to support one version of Outlook in your
addin (2003 or 2007), or can live with not supporting the ribbon in Outlook
2007 with an Outlook 2003 targeted addin. If I have to support multiple
versions of Outlook in one addin code base I generally prefer to use a
shared addin myself.
The choice of C# or VB.NET is up to you and which language you are more
comfortable with. There are more samples in C#, but otherwise they are
roughly equal. I program Outlook/Office addins using both languages,
depending on the customer's wishes. I will say however that the ratio is
probably about 80% C#, 10% VB.NET and 10% VB6 these days as to what the
The prerequisites are a mess with any language or shared/VSTO addins with
managed code. It's your responsibility to make sure they all are there.
WinXP SP2 or later on CD, and later versions of Windows, all include a
Framework version. Other versions of Windows don't and unless the Framework
has been installed for some other code or from MS Update it won't be there.
Therefore you would need to check for that being installed.
The PIA's aren't installed at all, except as an optional installation, for
Office 2003 or earlier. For Office 2007 the PIA's are only installed when
Office is installed if the Framework is already installed when Office is
being installed. Otherwise they must be installed optionally. Therefore you
also must check for the PIA's being installed in the GAC.
The PIA installation for Office 2003 from the CD includes Extensibility. The
redistributable PIA MSI for Office 2003 doesn't include Extensibility, and
therefore that MSI must be separately installed. The redistributable PIA
package for Office 2007 does include Extensibility, so it doesn't require a
separate installer MSI for that.
For VSTO you also need the VSTO runtime installed, plus optionally the
language pack. You also need custom actions to set the CAS to provide full
trust to the VSTO assemblies.
If installing on Vista or later you also would need to strong name your
assemblies and include a manifest file that includes the public key of your
certificate as well as the <asInvoker> type XML to set the security level
required to run your addin.
Managed code installation is nowhere near as clean and simple as installing
an unmanaged code addin, whether in C++ or VB6 or Delphi or whatever.
<email@example.com> wrote in message
> The recommended way to write office add-in these days is using VSTO
> and C#.NET
> Can I rely on .NET framework and/or other prerequisites to be
> installed with Office 2003 and newer? If this is not the case then I
> don't see the point of using this technology ...
> I am writing a COM add-in in C++ and want to evaluate pros and cons of
> migrating to VSTO.