martes, 6 de noviembre de 2007

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

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_USER\Software\Classes\CLSID\{19AAED53
-31A2-4DA2-B9AE-26491E3D3FD8}]
@
="OutlookAddin1 -- an addin created with VSTO technology"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{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_USER\Software\Classes\CLSID\{19AAED53
-31A2-4DA2-B9AE-26491E3D3FD8}\ProgID]
@
="OutlookAddin1"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{19AAED53
-31A2-4DA2-B9AE-26491E3D3FD8}\Programmable]

[HKEY_CURRENT_USER\Software\Classes\CLSID\{19AAED53
-31A2-4DA2-B9AE-26491E3D3FD8}\VersionIndependentProgID]
@
="OutlookAddin1"

[HKEY_CURRENT_USER\Software\Classes\OutlookAddin1]
@
=""

[HKEY_CURRENT_USER\Software\Classes\OutlookAddin1\CLSID]
@
="{19AAED53-31A2-4DA2-B9AE-26491E3D3FD8}"

[HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\OutlookAddin1]
"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! :-P
Hasta la próxima
Juanlu

Etiquetas: ,


Comments:
Oye ya probe los pasos que mencionas pero no logra instalar mi add-in

El add-in funciona muy bien en modo de pruebas. Cuando lo instalo en otro equipo, outllok indica un error al intentar cargarlo
 
El problema es debido a la seguridad/permisos. En modo depuración funciona correctamente porque es Visual Studio el que se encarga de establecer esta seguridad. Echa un vistazo a la seguidad que VS establece y haz tu lo mismo, para ello, mira "Runtime Security Policy" en la configuración de .NET.

Yo lo he instalado en más de un cliente y te puedo asegurara que funciona correctamente.

Saludos
 
Sabeis como añadir a los prerequisitos que se instalan el Outlook 2007 para que se instale tambien aparte de Framework, VSTO y las PIA?
Es que necesito que mi ADD-In instale tambien el Outlook sino esta instalado en el PC.
Muchas Gracias.
 
Particularmente no me preocuparía de instalar mi Add-In si Outlook no está Instalado, se trata de una funcionalidad añadida a una aplicación/producto que debería estar instalado. De ello debería preocuparse los administradores es decir, pe, por SMS instalar Outlook y a continuación el Add-in.

Adicionalmente podrías hacerlo generando previamente un nuevo MSI que se encarge de ello, de instalar primero el Outlook y a continuación el Add-in, pero creo que no es lo más lógico. También, prodrías hacer esto mismo pero añadiendo el MSI de Outlook como prerrequisito, sin embargo será necesario validar alguna clave de registro de Outlook para validar la existencia de su instalación.

Espero haber aclaro la duda, sino es así, aquí estaré de nuevo, :-D

Saludos
 
Ante todo, gracias por la ayuda.
EL problema es que la empresa me obliga a que instale el outlook sino lo tiene instalado el PC, no quieren preocuparse ellos de si esta instalado o no.

Lo jodido es que no se como poner para que me salga el outlook como prerequisito!!!

Saludos y gracias.
 
Que tal oye fijate que he estado haciendo un addin para outlook con visual studio 2008 y tengo el problema de que no puedo crear un instalador que funcione en las demas computadoras, he visto un codigo por internet en un video para agregar politicas a .net y lo he copiado pero aun asi el instalador no agrega el addin a mi outlook
 
Existan muchos programas buenas, pero una de ella socoriò en situacion complicacion y a mi juicio determinarà todas complejidades igualmente - recuperar clave outlook.
 
Publicar un comentario



<< Home

This page is powered by Blogger. Isn't yours?