2009-02-11 24 views
8

¿Cómo funciona Excel VSTO? Si creo una solución Excel Workbook en Visual Studio 2005, puedo codificar con mucho gusto el acceso total al modelo de objetos de Excel e incluso tratar la hoja de Excel como una superficie de diseño. Cuando construyo la solución obtengo un archivo .XLS y un .DLL (que contiene mi código C#).¿Cómo funciona Excel VSTO?

Ahora puede poner en marcha la hoja de Excel simplemente haciendo doble clic sobre el .XLS y no es mi hoja de funcionamiento de todo el código C# y los controles se me cayó en la hoja etc.

¿Cómo es la hoja de referencia a la .DLL? ¿Qué parte del libro de trabajo/hoja de Excel dice que necesita encender el CLR y alojar mi ensamblaje?

Respuesta

7

Según this (gracias PintSizedCat) para Excel 2003 ocurre lo siguiente:

La aplicación de Microsoft Office comprueba las propiedades del documento personalizados para ver si hay son gestionados código extensiones asociadas con el documento . Para obtener más información, consulte Descripción general de las propiedades del documento personalizado.

Si hay extensiones de código administradas, la aplicación carga AddinLoader.dll. Esto es una DLL no administrada que es el componente de cargador para Visual Studio 2005 Tools para Office Segunda edición runtime. Para obtener más información, consulte Visual Studio Tools para Office Runtime Descripción general.

AddinLoader.dll carga el .NET Framework e inicia el porción controlada de los Visual Studio Tools para tiempo de ejecución de Office.

el Visual Studio Tools para Office tiempo de ejecución crea un dominio de aplicación, la política conjuntos para el dominio de aplicación no confiar en la Zona Mi PC y, comprueba la política de seguridad de acceso a código tienda para encontrar una política para la montaje de personalización.

El .NET Framework valida la evidencia presentada por el ensamblado contra la política. Si falla, se genera un error . Si se aprueba, el proceso continúa.

Si la personalización utiliza un manifiesto de implementación , el Visual Studio Tools para Oficina de tiempo de ejecución que utiliza para comprobar si hay actualizaciones montaje. Si alguna actualización es necesaria, se realizan ahora.

El motor de ejecución de Visual Studio Tools para Office carga el ensamblado en el dominio de aplicación .

el Visual Studio Tools para Office tiempo de ejecución llama al controlador de eventos de arranque en su ensamblaje personalización . Para obtener más información, vea Visual Studio Tools para Office Project Eventos.

En libro de Excel de mi proyecto de prueba Tengo dos propiedades personalizadas:

_AssemblyName, valor = * _AssemblyLocation, valor = {533b2c13-a125-418a-bfff-9546b0762807}

supongo que éstos son las propiedades que dirigen el tiempo de ejecución de VSTO a mi ensamblaje.

5

Todo esto se hace en el Registro, debe poder encontrar la clave en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel o su aplicación equivelant. Tengo más experiencia con COM Addins que están registrados en otro lugar en el Registro también. Esta clave debe tener un elemento LoadBehaviour debajo que se usa para determinar cómo se carga la aplicación (2 se carga manualmente, 3 se carga automáticamente al inicio).

¿Tiene un proyecto de instalación para su VSTO? Dentro de allí puede ver la clave del Registro que está configurada, pero el programa de instalación también deberá/registrará el VSTO en GAC (aunque no confíe en mi palabra, ya que estoy algo mal con VSTO como dije).

Espero que esto ayude, voy a tratar de encontrar más información para usted.

Editar Debería intentar leer el siguiente http://msdn.microsoft.com/en-us/library/bb386298.aspx que le dará una explicación de lo que es el complemento. En realidad, es solo una envoltura alrededor de un host COM que se carga desde el Registro y VSTO habla con ese usando algún código de Interoparability.

También son útiles los http://msdn.microsoft.com/en-us/library/23cw517s.aspx (Introducción a Visual Studio Tools para Office, no lo golpee porque dice Primeros pasos en, hay una gran cantidad de información útil en allí) y http://msdn.microsoft.com/en-us/library/hy7c6z9k.aspx (que está enlazada desde la primera y es una visión general de los complementos de VSTO).

+0

He echado un vistazo bajo la tecla de registro y no hay nada para mi proyecto VSTO .Net (hay un subdirectorio 'Addins' con otros 2 complementos). Aún no tengo un proyecto de configuración para mi VSTO. – ng5000

+0

Podría estar bajo HKEY_CURRENT_USER –

Cuestiones relacionadas