Convertir Add-In de Office 2007 a Office 2010

Si queremos desarrollar un add-in desde cero, sabiendo que va a ser utilizado tanto en Office 2007 como en Office 2010, lo recomendable es hacerlo en .NET 4, ya que simplemente cambiando los requisitos y dependencias podremos usarlo en ambos entornos sin tener que variar ni el código ni los componentes gráficos.

Pero lamentablemente, nos puede suceder que tengamos desarrollado un add-in para Office 2007 y una vez hecho, se quiera que también se pueda utilizar en Office 2010.

Para no tener que volver a hacer el desarrollo completo, que de hacerlo bien lo haríamos ya con .NET 4, tenemos una opción que hará que funcione en ambos entornos sin tener que hacer muchos cambios.

Lo primero será hacernos con un VisualStudio 2010, el cual permite poder alternar entre diferentes versiones del Framework para la compilación.

Abriremos nuestro proyecto con vs2010 y nos aparecerá un wizard que transformara nuestro proyecto posiblemente realizado en una versión anterior de VisualStudio, en un proyecto de vs2010.

Después de este paso, está casi todo hecho, la verdad.

Ahora tendremos que o bien enfocar el proyecto para Office 2007 o bien para Office 2010, pero tanto para uno como para otro, deberemos cambiar la versión de compilación y poner el .NET 3.5.

Como ya he comentado anteriormente, esto es si lo que queremos es “adecuar” un desarrollo ya hecho para Office 2007  y que ahora debe funcionar también en Office 2010.

Empecemos con los cambios:

Primero deberemos de añadir las dependencias al proyecto, estas dependencias serán el VSTO 4, el cual es una opción que es posible instalar cuando se instala el propio Office 2010.

De todas maneras, si no contamos con ello en nuestro equipo, podemos descargarlo de aquí.

De la misma manera, al instalar Office 2010, se instalaran también los PIAs de esta versión,  si no contamos con ellas, las podremos descargar de aquí.

Una vez hemos hecho esto, estamos preparados para compilar el proyecto y pasaremos a la parte del instalador, donde hay que cambiar mas cosas.

En los pre-requisitos veremos que nos aparece VSTO2010, pero no es obligatorio como ya he comentado antes y no nos aparecerán como requisitos los PIAs, por el mismo motivo.

Ahora, seleccionaremos el proyecto instalador, botón derecho y daremos a View/Launch Conditions, donde veremos las condiciones necesarias que el instalador buscara en el registro. Aquí deberemos cambiar cierto puntos.

Cambiaremos la ruta donde busca el VSTO por esta:  SOFTWAREMicrosoftVSTO Runtime Setupv4 que es el VSTO que se instala al instalar Office 2010.

Con esto debería valernos para buscar el VSTO, aunque también existe la posibilidad de que apunte al VSTO redistribuible:  SOFTWAREMicrosoftVSTO Runtime Setupv4R

Lo suyo seria crear dos condiciones de arranque en el registro, una para el VSTO de Office y otra para el VSTO redistribuible.

Realmente, si usamos el .NET 3.5 nos vale cualquiera de los dos, si usáramos el .NET 4, deberíamos apuntar directamente al redistribuible.

Por tanto, como tenemos dos posibles opciones para que la instalación se ejecute bien, en la condición para encontrar el VSTO,  cambiaremos el texto de la condición por el siguiente: VSTORUNTIMEREDIST>=”10.0.30319″ OR OFFICERUNTIME>=”10.0.21022” y así buscará tanto por el VSTO de Office como por el redistribuible.

A continuación cambiaremos la condición de búsqueda de los PIAs (HASSHAREDPIA) para que busque los de Office 2010. Simplemente cambiaremos el ComponentId del Office 2007, por el del Office 2010.

Obviamente, deberemos cambiar también el ObjectId de la herramienta de Office para la que se haya desarrollado este aplicativo.

Cambiaremos estas:

Por su correspondiente en esta tabla:

Y en principio con estos cambios nuestra aplicación desarrollada para Office 2007, funcionará sin problema alguno en Office 2010.

<O,_,O/>