Pregunta

Creé un componente complementario de Word y un proyecto de configuración de Visual Studio para instalar el componente.

En una máquina limpia con Office 2003 instalado, no parece posible cargar el componente complementario en Word.

Buscar en Google el problema sugiere que esto se debe a que no se confía en la asamblea.Le di plena confianza al ensamblaje usando la herramienta de línea de comando:

caspol -af AssemblyName.dll

Esto no hace ninguna diferencia y el componente aún no está cargado en Word.caspol imprime un mensaje "Debido a que todos los conjuntos de GAC siempre tienen confianza plena, la lista de confianza completa ya no es significativa.Debe instalar cualquier ensamblaje que se utilice en la política de seguridad en el GAC para asegurarse de que sean confiables "

Cambiar el instalador para colocar el ensamblado en el GAC permite que se cargue correctamente en Word.Pero es posible que el componente tenga que usar ensamblados comunes en el futuro, compartidos entre nuestras otras aplicaciones .NET, y agregar estas bibliotecas al GAC no sería deseable.

¿Alguien sabe cómo configurar la seguridad para permitir que el componente se cargue cuando se instala fuera del GAC?

¿Fue útil?

Solución

Puede ejecutar manualmente el comando siguiente para establecer la seguridad para permitir la palabra para ejecutar el montaje desde fuera del GAC. Esto crea un nuevo grupo con plena confianza, que es lo que permite que el conjunto funcione.

caspol.exe -u -addgroup All_Code -url "\*"  FullTrust -n AssemblyName.dll

Microsoft tiene una acción personalizado de ejemplo para un instalador en el sitio siguiente enlace a MSDN , lo que permitirá incluir este comando como una acción personalizada instalador.

Otros consejos

Definitivamente no es necesario que instale sus ensamblados en el GAC, ni tampoco es necesario definir ninguna política de seguridad en su ensamblado complementario.

¿Está utilizando .NET 2.0 con Office 2003?Office 2003 y Office XP tienen problemas al cargar complementos .NET 2.0.Se cargan utilizando .NET 1.1 Framework (si está presente en la máquina, lo cual es muy probable).Por lo tanto, necesita parchear su instalación de Office con el Actualización de compatibilidad con complementos compartidos para Microsoft .NET Framework 2.0 (KB908002).

Definitivamente debería incluir este parche en los requisitos previos de su instalador.

Encuentre más detalles en el respuesta a estas preguntas.

Y, por supuesto, debe tener la versión correcta de los PIA instalada en su sistema de destino (casi olvido este punto, los PIA incorrectos o faltantes son uno de los principales problemas por los que los complementos no se cargan).

Actualizar:KB908002 requiere VS 2005 en la PC para agregar la actualización de soporte de complementos compartidos al cuadro de diálogo de requisitos previos de los proyectos de instalación.En este caso se debe utilizar la siguiente solución alternativa:

Si está utilizando Visual Studio 2008, debe seguir las solución alterna mencionado a continuación para que KB908002 aparezca en el cuadro de diálogo Agregar requisitos previos:

  1. Descargue e instale la solución en una máquina que tenga instalado Visual Studio 2005.
  2. Navegar a C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages, busque la carpeta KB908002.
  3. Inicie sesión en la máquina que tiene Visual Studio 2008 instalado y copie la carpeta KB908002 a C:\Archivos de programa\Microsoft SDK\Windows\v6.0A\Bootstrapper\Packages
  4. Ahora, si va a la lista de requisitos previos en la máquina con Visual Studio 2008, verá la solución en la lista.

Otra opción en la que no necesitas VS 2005 sería:

  1. Descargue la solución a una carpeta temporal.
  2. Abra un símbolo del sistema, navegue hasta la carpeta donde se encuentra la solución y ejecute el siguiente comando para extraer los archivos del archivo de instalación autoextraíble:

    vs2005-kb908002-enu-x86.exe /C /T:C:\KB908002\
    cd \KB908002
    

    Ahora la carpeta C:\KB908002 contendrá tres archivos, vs2005-kb908002-enu-x86.exe /C /T:C: mp\KB908002 mp, setup.exe y bootstrapper.msi

  3. Estamos interesados ​​en el contenido de bootstapper.msi, por lo que extraemos el contenido de este archivo:

    msiexec /a bootstrapper.msi /qb TARGETDIR=C:\KB908002\tmp\
    cd tmp
    
  4. Por último copiamos la carpeta de paquetes que extrajimos a la carpeta bootstrapper del SDK de Windows

    xcopy /E "C:\KB908002\tmp\SDK\BootStrapper\Packages" "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
    
  5. Ahora, si va a la lista de requisitos previos en Visual Studio 2008, verá la solución en la lista.

No creo que poner el conjunto de complemento en GAC es obligatoria. Creo que sólo falta un paso en su despliegue.

Las aplicaciones de oficina como MS Word cargan sus complementos mediante la lectura de ciertas entradas del registro. Lo más probable es que no está creando estas entradas durante el despliegue.

Para conocer los detalles de todo este asunto de registro, consulte este artículo. También leer sobre la distribución de complementos de Office en general, vea este artículo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top