¿Puedo seguir usando Microsoft.Office.Interop assemblies con office 2013?

Tuve que importar un proyecto anterior (en .Net 2) a Visual Studio 2013, hace uso de las Asambleas de interoperabilidad primaria de Microsoft.

Visual Studio dijo que necesito agregar referencias al proyecto. Ahora fui e hice algunas lecturas y aparentemente Microsoft solo lanzó la PIA para la oficina 2010. (Tengo Office 2013)

Ahora lo que me gustaría saber es

  1. ¿Puedo hacer que funcione con Office 2013 y ser compatible con versiones anteriores?
  2. Y si es así, ¿es esta una buena ruta para el futuro? ¿Va a ser compatible? Porque veo que necesita .Net 2 (a más tardar) y Windows 8 viene con 4.5 y no 3 (de manera predeterminada) y la mayoría de las computadoras nuevas tendrán Office 2012 o 2013.

Los PIA son un artefacto histórico, requerido solo por versiones antiguas de .NET (antes de v4). Han sido completa y elegantemente reemplazados por la función “Insertar tipos de interoperabilidad”, también conocida como la función “Sin PIA”. Compatible desde Visual Studio 2010, lo encontrará de nuevo en la ventana Propiedades cuando seleccione un conjunto de referencia. Por defecto es True . Un buen video que cubre la tecnología subyacente está disponible aquí .

Esta es la razón por la que Microsoft no publica los PIA para Office 2013; en su lugar, esperan que incorpore los tipos de interoperabilidad.

La característica es muy deseable, evita que su cliente tenga que instalar los PIA en su máquina y que los incluya con su instalador. Solucionando el problema cuando ninguno se ocupa de él, un contratiempo completamente común. Además, los PIA para Office son muy grandes, la gran ventaja de incorporar los tipos de interoperabilidad es que su ensamblaje solo contiene los tipos que realmente usa. Muchos megabytes se redujeron a algunos kilobytes.

El flujo de trabajo es un poco diferente. En lugar de agregar una referencia a los ensamblados Microsoft.Office.Interop disponibles en el cuadro de diálogo Agregar referencia, pestaña .NET Framework, ahora usa la pestaña COM. Y elija, por ejemplo, ” Microsoft Excel 15.0 Object Library ” para generar los tipos de interoperabilidad para un progtwig que usa Excel. Si carga un proyecto anterior que utilizó PIA previamente, simplemente elimine esos ensambles de referencia y agréguelos de nuevo desde la pestaña COM.

Tenga en cuenta que se pierde una función, es más difícil orientar intencionalmente una versión anterior de Office que realmente no tiene instalado en su máquina de desarrollo. Si ese es un requisito, entonces aún necesita los PIA para esa versión, fuerce los Tipos de Interoperación Incrustar a Verdadero en la ventana Propiedades. En realidad, hacer esto es cuestionable, Microsoft tiene dificultades para mantener las nuevas versiones de Office completamente compatibles con las versiones anteriores. Lo han mantenido durante 15 años pero se ha estado quedando sin vapor. En el peor de los casos, la orientación de una versión más nueva que la que tiene instalada en su equipo es la que puede hacer que su progtwig se cuelgue con excepciones muy difíciles de diagnosticar como AccessViolationException .

Tenga en cuenta que debe hacer pequeñas modificaciones a su código para que funcione. Las clases sintéticas ” XxxxClass ” no están integradas, solo las interfaces ” Xxxx “. Simplemente elimine la palabra ” Class ” de la nueva statement.

Comunidad VS 2015 con Office 365: por cualquier razón, el complemento Agregar desde el objeto COM no funciona. La solución es ir al GAC y encontrar los ensamblajes de interoperabilidad, copiarlos en un directorio temporal y luego agregarlos a su proyecto como cualquier DLL.

Además, si no lo sabe ahora, Windows 8 tiene versiones anteriores de .NET Framework, pero no están instaladas por defecto. Vaya a Características del progtwig —> Agregar funciones a Windows —-> y la primera checkbox debe ser .NET 3.0 y tal vez 2.0. Tenga en cuenta que si se encuentra en un servidor WSUS, deberá indicarle a Windows que tome los archivos de los servidores de actualización de Windows. ¡Espero eso ayude!

Oficialmente, no existe una compatibilidad retroactiva de la PIA para Office. De hecho, funciona.

Por motivos de compatibilidad con versiones anteriores, utilizo el PIA para Office XP desde hace varios años y funciona bien con Office XP, 2003, 2007 y 2010 (aún no probado en 2013) y en Windows XP, Vista, 7 y 8.

Para compatibilidad con las diferentes versiones de Windows, estoy usando .NET framework 3.5.

Para el futuro … depende de lo que esté haciendo con la PIA. Si es posible, es mucho mejor tratar directamente con los archivos Open XML o crear un complemento para Word / Excel.

Me acabo de enterar de que Visual Studio 2013 Express ya no tiene soporte de oficina. Entonces necesita al menos la versión pro para que funcione.