2012-09-25 34 views
10

Actualmente estoy trabajando en un complemento de Excel 2010 que anteriormente era un complemento de Excel 2007. En algún momento del proceso de cambio de computadora, creo que el complemento se convirtió.convertir un complemento de Excel 2010 a un complemento de 2007 (ambos VSTO)

Algunos de mis clientes afirmaron que el complemento ya no funcionaba en Excel 2007, así que traté de depurarlo en una VirtualBox con Excel 2007 y Visual Studio 2010 instalados.

Ahora me sale el mensaje de error:

No puede depurar o ejecutar este proyecto, ya que la versión requerida de la aplicación Microsft Office no está instalado.

empecé un nuevo proyecto de complemento de Excel 2007 y trató de encontrar cuáles son las diferencias y se le ocurrió la idea de que algo tiene que ver con la DLL así que cambié mi complemento de 2010 hasta que parecía una 2007 addin.

Todavía recibo el mensaje de error que indica que mi proyecto no se puede depurar.

¿Hay algo que podría haber olvidado cambiar?

Lamentablemente, escribir un complemento completamente nuevo no es una opción.

Estas preguntas no me han ayudado hasta ahora:

  1. Excel Addin that works on Excel 2007 and 2010
  2. Deploying Office 2010 addin

Respuesta

8

Para obtener VS 2010 trabajar con Office 2007 modificar el archivo de proyecto (. csproj) para que se abra en Office 2007 y no busque Office 2010 cuando se ejecute (por lo tanto, el mensaje de error anterior).

Aquí es el cambio de la configuración del proyecto (Excel ejemplo):

Fuente XPath:

// Proyecto/ProjectExtensions/VisualStudio/FlavorProperties/ProjectProperties/@ DebugInfoExeName

Valor anterior (Office 2010):

DebugInfoExeName = "# Software \ Microsoft \ Office \ 14.0 \ Excel \ InstallRoot \ Path # excel.exe"

Nuevo valor (Office 2007):

DebugInfoExeName = "# Software \ Microsoft \ Office \ 12.0 \ Excel \ InstallRoot \ Path # excel.exe"

Después de cambiar este ajuste del proyecto, cuando el fuego hasta el depurador (F5) que se carga la aplicación Excel 2007, en lugar de buscar Excel 2010.

+1

Gracias, este consejo funcionó muy bien. – Bongo

+3

Parece que los símbolos # están simplemente encerrando una ruta de registro; parece que básicamente está diciendo "encuentre esta ruta desde el registro y anexe Excel.exe". - Así que decidí clonar mi configuración de registro de la colmena 12.0 en la colmena 14.0 y darle una oportunidad. Lo 'y he aquí! ¡Funciona! - Ahora puedo, con un archivo .sln/.csproj abrir y depurar el mismo complemento en mi máquina virtual con Windows XP/Office 2007 como puedo en mi máquina virtual con Windows 7/Office 2010 (usando VSTO 4.0 por supuesto). – BrainSlugs83

6

Normalmente, cuando estoy desarrollando en contra múltiples versiones de Office con complementos de VSTO, tengo un proyecto para cada versión de Office a la que apuntar. Puse todo el código común entre los proyectos en un solo proyecto (generalmente el más antiguo) y uso archivos vinculados, agrego el común archivos a los proyectos más nuevos. Esto me permite escribir un conjunto de código de núcleo común, abstraído de los requisitos de cada versión de Office. Esto significa que ya no estoy luchando contra las diferentes formas de VST O se compila para cada versión de Office. Esto se puede hacer más fácil con las carpetas compartidas y las máquinas virtuales, por lo que puedo desarrollar y probar sin múltiples computadoras. No es gracioso, pero funciona bien para mí. Esto debería permitirle desarrollar su complemento VSTO contra Office 2007 y Office 2010 sin mucho problema.

+0

entonces, tienes una versión diferente de Visual Studios en diferentes máquinas virtuales, ¿verdad? –

+1

@ T.Todua, en este momento, no recuerdo. Han pasado casi 6 años desde que trabajé en un add-in de VSTO. Recuerdo haber ejecutado varias máquinas virtuales para el proyecto, por lo que tendría sentido que tuviera una máquina virtual para cada entorno en el que estaba desarrollando. –

Cuestiones relacionadas