Pergunta

Como o Excel VSTO trabalho? Se eu criar uma solução de livro do Excel no Visual Studio 2005 Posso, então, felizmente código afastado com acesso total ao modelo de objeto Excel e até mesmo tratar a folha de Excel como uma superfície de design. Quando eu construir a solução que eu obter um arquivo .XLS e uma .DLL (contendo meu código C #).

Agora posso arrancar a folha de Excel apenas clicando duas vezes sobre o .XLS e há minha folha funcionando com todo o meu código C # e quaisquer controles que caiu na folha etc.

Como é a folha de referência a .DLL? Que parte do livro do Excel / folha diz-se que ele precisa acender o CLR e anfitrião minha montagem?

Foi útil?

Solução

De acordo com a este (graças PintSizedCat) para o Excel 2003, o seguinte acontece:

O aplicativo do Microsoft Office verifica as propriedades do documento personalizado para ver se há código gerenciado extensões associadas com o documento. Para mais informações, veja Personalizado do documento Visão geral sobre propriedades.

extensões de código Se houver são geridos, o aplicativo carrega AddinLoader.dll. Este é um DLL não gerenciado que é o componente carregador para o Visual Studio 2005 Tools para Office Second Edition tempo de execução. Para mais informações, veja Visual Studio Tools para Office Runtime Visão geral.

cargas AddinLoader.dll o .NET Framework e inicia o conseguiu parte das Ferramentas do Visual Studio para Escritório tempo de execução.

Os Visual Studio Tools for Office tempo de execução cria um domínio de aplicação, define a política para o domínio de aplicação para não confiar no meu Zona computador e, verifica a política de segurança de acesso ao código loja para encontrar uma política para o personalização de montagem.

O .NET Framework valida a evidência apresentada pelo conjunto de contra a política. Se ele falhar, um erro é gerado. Se passar, o processo continua.

Se a personalização usa uma implantação manifesto, o Visual Studio Tools for Escritório runtime usa-lo para verificar se há montagem atualiza. Se há atualizações necessário, elas são realizadas agora.

Os Visual Studio Tools for Office cargas de tempo de execução para a montagem da aplicação domínio.

Os Visual Studio Tools for Office runtime chama o evento Startup manipulador em sua personalização montagem. Para mais informações, veja Visual Studio Tools for Office Project Eventos.

No Excel de meu projeto de teste pasta de trabalho eu tenho duas propriedades personalizadas:

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

Suponho que estas são as propriedades que dirigem o tempo de execução VSTO à minha montagem.

Outras dicas

Isso tudo é feito no Registro, você deve ser capaz de encontrar a chave em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel ou seu aplicativo equivelant. Eu tenho mais experiência com COM suplementos que estejam matriculados em outro lugar no Registro também. Essa chave deve ter um item de LoadBehaviour sob ele, que é usado para determinar como o aplicativo é carregado (2 é carga manualmente, 3 é carregar automaticamente na inicialização).

Você tem um projeto de instalação para o seu VSTO? Dentro de lá você pode ver a chave do registro que está definido, mas o programa de instalação / também deve registrar o VSTO no GAC (embora não tome minha palavra para ela como eu sou um shakey pouco com VSTO como eu disse).

Espero que isso ajude, vou tentar encontrar mais algumas informações para você.

Editar Você deve tentar ler o seguinte http://msdn.microsoft.com/en-us /library/bb386298.aspx que lhe dará uma explicação do que o suplemento é. É realmente apenas um invólucro em torno de uma série COM, que é carregado a partir do registo e as negociações VSTO para que o uso de algum código Interoparability.

Também são úteis http://msdn.microsoft.com/en-us /library/23cw517s.aspx (Introdução ao Visual Studio Tools for Office, não batê-lo porque ele diz Introdução no, há um monte de informações úteis para lá) e http://msdn.microsoft.com/en-us/library/hy7c6z9k.aspx (que está ligado a partir da primeira e é uma visão geral do VSTO suplementos).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top