Un Addin para Outlook 2003/2007

“A partir de ahora crear un Addin y hacer que funcione a la primera, dejará de ser un problema”.

Hace un par de semanas “me tocó” llevar a cabo la creación de un addinl, y bueno, aunque ya lo había desarrollado otren otras ocasiones, una vez más me volví a encontrar con algún que otro problemilla (claro está que con la ayuda de Eduardo conseguí resolverlo en un menor tiempo). Así que para que no vuelva a ocurrirme esto ni a mí ni ninguno de vosotros, dejo constancia aquí de los pasos que seguí:

Creando el Addin

  • Desarrollar el Add-in a partir de los siguientes métodos de carga y descarga del. Aquí tenéis algunos ejemplos de como implementar un add-in. Por el momento y para probar que el Deploy esta “chupado” conseguido prueba a mostrar un mensaje en cada evento/método.
private void ThisAddIn_Startup(object sender, System.EventArgs e) { MessageBox.Show("Start"); } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { MessageBox.Show("Shutdown"); }

“Deployando” el Addin

Asegurar que las entradas del registro generadas al crear el proyecto son correctas y se corresponden con el siguiente fragmento a excepción del clsId y del nombre del addin, que en este ejemplo es; “OutlookAddin1”:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareClassesCLSID{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}] @="OutlookAddin1 -- an addin created with VSTO technology" [HKEY_CURRENT_USERSoftwareClassesCLSID{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}InprocServer32] "ThreadingModel"="Both" "ManifestLocation"="C:\Archivos de Programa\Microsoft\OutlookAddin1\" @=hex(2):25,00,43,00,6f,00,6d,00,6d,00,6f,00,6e,00,50,00,72,00,6f,00,67,00,72, 00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,4d,00,69,00,63,00, 72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,53,00,68,00,61,00,72,00,65,00,64, 00,5c,00,56,00,53,00,54,00,4f,00,5c,00,38,00,2e,00,30,00,5c,00,41,00,64,00, 64,00,69,00,6e,00,4c,00,6f,00,61,00,64,00,65,00,72,00,2e,00,64,00,6c,00,6c, 00,00,00 "ManifestName"="OutlookAddin1.dll.manifest" [HKEY_CURRENT_USERSoftwareClassesCLSID{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}ProgID] @="OutlookAddin1" [HKEY_CURRENT_USERSoftwareClassesCLSID{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}Programmable] [HKEY_CURRENT_USERSoftwareClassesCLSID{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}VersionIndependentProgID] @="OutlookAddin1" [HKEY_CURRENT_USERSoftwareClassesOutlookAddin1] @="" [HKEY_CURRENT_USERSoftwareClassesOutlookAddin1CLSID] @="{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}" [HKEY_CURRENT_USERSoftwareMicrosoftOfficeOutlookAddinsOutlookAddin1] "CommandLineSafe"=dword:00000001 "Description"="OutlookAddin1 -- an addin created with VSTO technology" "FriendlyName"="OutlookAddin1" "LoadBehavior"=dword:00000003 "Manifest"="C:\Archivos de Programa\Microsoft\OutlookAddin1\OutlookAddin1.dll.manifest"

Aquí os dejo una buena y clara referencia sobre este tema anterior: Deploying Application-Level Add-ins.

Nota: Comprueba que el ClsId al que se hace referencia en el proyeco de instalación se corresponde con el del proyecto que contiene el Addin. Para ello edita el “.csproj” en formato texto y comprueba que el atributo “ProjectGuid” tiene el mismo valor:

<ProjectGuid>{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}</ProjectGuid>

Y lo más importante, como conseguir “Full-Trust” para que la instalación se realice correctamente y el addin se cargue sin problemas (Custom Actions):

  1. Crear el proyecto “OutlookAddIn1.SetSecurity”
  2. Crear y anadir las clases “CaspolSecurityPolicyCreator” y “SetSecurity“. El contenido de estas clases puede obtenerse desde aquí.
  3. Install – CustomActionData: /assemblyName=”OutlookAddIn1.dll” /targetDir=”[TARGETDIR]” /solutionCodeGroupName=”Pruebas.OutlookAddIn1″ /solutionCodeGroupDescription=”Code group for OutlookAddIn1″ /assemblyCodeGroupName=”OutlookAddIn1″ /assemblyCodeGroupDescription=”Code group for OutlookAddIn1″ /allUsers=[ALLUSERS]
  4. “Rollback – CustomActionData” y “Uninstall – CustomActionData”: /solutionCodeGroupName=”Pruebas.OutlookAddIn1″
  5. Dejar en blanco la acción “Commit – CustomActionData”.

Prerrequisitos:

Nota: El desarrollo no sólo permitirá la ejecución en Outlook 2003 sino que además en Office 2007, ahora, eso sí, a falta de los maravillos “Ribbons”, para lo que será necesario ampliar con el desarrollo adecuado.

Más información.

En fin, espero haber servido de ayuda una vez más, ¡seguro que si! 😛
Hasta la próxima
Juanlu

16 comentarios en “Un Addin para Outlook 2003/2007”

  1. LLevo unos dias haciendo un add-in para el office, pero ayer intenté acceder a la libreta de contactos y desde entonces el Vs2005 no ejecuta ningun add-in llama al outlook pero nada mas ¿sabes que me he cargado? he reistalado el outlook y el Vs2005 pero nada de nada

  2. He hecho un Add-in para Outlook 2007 y necesito que como prerequisito me instale el Office 2007 o en su defecto el Outlook 2007, ya que en las maquinas que tengo que instalar el add-in cabe la posibilidad de que no este instalado el Outlook.
    Alguien sabe como se hace??

    Muchas gracias!!

  3. Hola!

    He hecho un Add-in para outlook 2003. He conseguido que al seleccionar un correo guarde los datos adjuntos en una carpeta. El problema que tengo es q estos datos pueden ser archivos .zip o .rar y los tengo que guardar descomprimirdos.

    Alguien conoce alguna forma de hacerlo

    Muxas gracias

  4. Hola, estoy desarrollando un Addin para Outlook y hace lo que se espera al ejecutarlo en el entorno VisualStudio2008. Pero cuando genero el instalador (msi) y lo pruebo en otra máquina no funciona: “No cargado. Error en tiempo de ejecución durante la carga del complemento COM”.

    He investigado y parece ser que son problemas de seguridad con el ensamblado y el Framework 3.5 de .NET.
    Todas las soluciones que he visto me dan el mismo problema.

    He probado con Visual Studio 2008, Framework 3.5 y en dos versiones de Outlook (2003 y 2007).

    Agradecería cualquier ayuda. Muchas gracias.

  5. Yo tengo este problema “Error en tiempo de ejecución durante la carga del complemento COM
    con un excel add-in agrego un ribbon, desarrollado con vs 2008 y office 2007, la instalacion lo hace bien pero al momento de levantar o carga no pasa nada

  6. Hola, hace poco desarrollé un Addin para Outlook 2003 con VS2008, compilando para framework 3.5.

    Lo que tuve que hacer para el deploy fue lo siguiente:

    1 – framework 3.5 SP1
    2 – VSTO runtime
    3 – PIA
    4 – ejecutar el setup del Addin
    5 – setear la seguridad en las Policy usando el comando “Caspol” del framework 2.0

    de esa manera el addin carga correctamente.

    Suerte,
    Mauricio.

  7. Hola, los comento que estoy empezando con esto de los add-in con VS2008. El problema que tengo es que desde el entorno, me a abre bien el outlook con mi add-in, cuando genero el msi y los instalo, no me lo carga mas. Si desintalo el add-in, y vuelo a correr la aplicacion ( desde el ID) ya no me parece mas el add-in en outlook..
    Alguien me puede dar una idea?
    Muchas Gracias

  8. Hola:
    yo he desarrollado un add-in para outlook 2003 con visual studio 2008 y con el caspol he configurado las Policy de seguridad. Tengo entendido que partir de .NET Framework versión 3.5 Service Pack 1 (SP1), las aplicaciones y sus ensamblados de bibliotecas pueden ejecutarse como ensamblados de plena confianza en un recurso compartido de red. Me da un error en la carga del complemento COM. Alguien me podría echar una mano con los pasos a seguir?
    Gracias y un saludo

  9. Hola!!

    Yo también he realizado un Add-in. Creo unos botones en outlook que me permiten abrir una aplicación externa y copiar los mails a una base de datos SQLServer, con sus adjuntos.

    Pero ahora, lo que me interesa es que los botones no aparezcan en outlook, sino en alguna barra de botones del mensaje, ya que el mail tiene su propias barras de mensajes y menús.

    Sabes cómo lo puedo hacer?

    Muchas gracias

  10. Perdonad, porque ultimamente bastante ocupado y un poco desconectado.

    Jof, para crear botones en la propia ventana de emails, tal y como cuentas, bastará con trabajar con el “Inspector” del tipo concreto y añadir el botón a una de sus barras de tareas (o a una nueva a crear).

    Suerte
    Saludos

  11. Tengo un add-in para office 2007 en vs2008 y en ciertas maquinas con win Xp y office 2007 anda perfecto y en otras me sale el error ‘No cargado. Error en tiempo de ejecución durante la carga del complemento COM.’
    Que peude ser?
    Saludos TotoUy

  12. Entre otras cosas, pueden debido a que:
    1) No se han instalado bien lo prerrequisitos; VSTO y/o PIAS.
    2) No tienes los permisos suficientes o el addin no está firmado y el Outlook no permite la carga de Add-Ins no firmado.
    3) La versión de Outlook (SP o Hotfix) son dinstintas entre cada una de las máqinas.

    Espero haberte ayudado
    Gracias
    Juanlu

  13. Hola eh realizado un proyecto en visual studio2008 es un addin para outlook2007 es sencillo es para borrar los contactos que ya no estan en uso, el programa funciona perfecto en mi pc donde lo desarrolle pero ahora necesito hacer q ese addin q hice funcione en otras computadoras pero estas no tienen visual estudio, no hay una manera de generar un ejecutable con el visual y que yo lo puede guardar en un pendrive y poder aplicarlo en las demas computadoras?
    Les agradesco toda las ayudas que me puedan dar Gracias
    mi correo chovegt@hotmail.com

  14. Muy buenas

    Para poder ejecutar tu addin en otros equipos, necesitaras que estas tengan instado las PIAS y las VSTO. Para esto puedes hacer un script C#, .VBScript o incluso un simple.BAT que realice las verificaciones de estos prerrequisitos:

    Te indico las comprobaciones hacer en el posible bat:
    1) Si “HKEY_LOCAL_MACHINESoftwareMicrosoftvsto runtime Setupv9.0.30729Install” <> 1 entonces no se encuentran instaladas las VSTO.
    2)PIAS: Lanza en el “.bat” la siguiente linea “o2007pia.msi /qn”. (Se ejecutará siempre pero es inmediata y te aseguras que siempre esté instaldo).

    Saludos
    Juanlu

  15. Hola ,

    instale las PIA´s , instale el vsto, le di permisos con el caspol , y tengo problemas sólo en el windows xp , office 2003 en todas las demás versiones de sistema operativo y office me aparece sin ningún problema , ¿Alguien me puede ayudar , estoy desesperado?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *