Arquitetura de suplementos do VSTO

Os suplementos VSTO criados usando as ferramentas de desenvolvedor do Office no Visual Studio têm recursos de arquitetura que enfatizam a estabilidade e a segurança e permitem que eles trabalhem em estreita colaboração com o Microsoft Office. Este tópico descreve os seguintes aspectos dos suplementos VSTO:

Compreender os suplementos do VSTO

Quando você usa as ferramentas de desenvolvedor do Office no Visual Studio para criar um suplemento VSTO, você cria um assembly de código gerenciado que é carregado por um aplicativo do Microsoft Office. Depois que o assembly é carregado, o suplemento VSTO pode responder a eventos que são gerados no aplicativo (por exemplo, quando um usuário clica em um item de menu). O suplemento VSTO também pode chamar o modelo de objeto para automatizar e estender o aplicativo, e ele pode usar qualquer uma das classes no .NET Framework.

O assembly se comunica com os componentes COM do aplicativo por meio do assembly de interoperabilidade primário do aplicativo. Para obter mais informações, consulte Assemblies de interoperabilidade primária do Office e Visão geral de desenvolvimento de soluções do Office (VSTO).

Se vários suplementos VSTO estiverem instalados para um aplicativo, cada suplemento VSTO será carregado em um domínio de aplicativo diferente. Isso significa que um suplemento VSTO que se comporta incorretamente não pode fazer com que outros suplementos VSTO falhem. Ele também ajuda a garantir que, quando o aplicativo é fechado, todos os assemblies do suplemento VSTO são descarregados da memória. Para obter mais informações sobre domínios de aplicativo, consulte Domínios de aplicativo.

Observação

Os suplementos VSTO que você cria usando as ferramentas de desenvolvedor do Office no Visual Studio são projetados para serem usados somente quando o aplicativo host do Microsoft Office é iniciado por um usuário final. Se o aplicativo for iniciado programaticamente (por exemplo, usando automação), o suplemento VSTO pode não funcionar conforme o esperado.

Componentes de suplementos VSTO

Embora o assembly do suplemento VSTO seja o componente principal, há vários outros componentes que desempenham um papel importante na forma como os aplicativos do Microsoft Office descobrem e carregam suplementos do VSTO.

Entradas do Registro

Os aplicativos do Microsoft Office descobrem suplementos VSTO procurando um conjunto de entradas do Registro. Para obter uma lista completa das entradas do Registro usadas pelos suplementos do VSTO, consulte Entradas do Registro para suplementos do VSTO.

Quando você cria sua solução, o Visual Studio cria todas as entradas de registro necessárias no computador de desenvolvimento para que você possa depurar e executar seu suplemento VSTO. Para obter mais informações, consulte Criar soluções do Office.

Se você usar o ClickOnce para implantar sua solução, o programa de instalação gerado pelo processo de publicação criará automaticamente as chaves do Registro no computador do usuário final. Para obter mais informações, consulte Implantar uma solução do Office usando o ClickOnce.

Manifesto de implantação e manifesto do aplicativo

Os Suplementos VSTO usam manifestos de implantação e manifestos de aplicativo para identificar e carregar a versão mais atual do assembly do Suplemento VSTO. O manifesto de implantação aponta para o manifesto do aplicativo atual. O manifesto do aplicativo aponta para o assembly do suplemento VSTO e especifica a classe de ponto de entrada a ser executada no assembly. Para obter mais informações, consulte Manifestos de aplicativo e implantação em soluções do Office.

Runtime do Visual Studio Tools para Office

Para executar suplementos VSTO que são criados usando as ferramentas de desenvolvedor do Office no Visual Studio, os computadores do usuário final devem ter o Visual Studio Tools for Office runtime instalado. O tempo de execução inclui componentes não gerenciados e um conjunto de assemblies gerenciados. Os componentes não gerenciados carregam o assembly do suplemento VSTO. Os assemblies gerenciados fornecem o modelo de objeto que seu código de suplemento VSTO usa para automatizar e estender o aplicativo host.

Para obter mais informações, consulte Visão geral do tempo de execução do Visual Studio Tools for Office.

Como os suplementos VSTO funcionam com aplicativos do Microsoft Office

Quando um usuário inicia um aplicativo do Microsoft Office, o aplicativo usa o manifesto de implantação e o manifesto do aplicativo para localizar e carregar a versão mais atual do assembly do suplemento VSTO. A ilustração a seguir mostra a arquitetura básica desses suplementos VSTO.

2007 Office add-in architecture

Observação

Em soluções do Office destinadas ao .NET Framework 4 ou ao .NET Framework 4.5, as soluções chamam o modelo de objeto do aplicativo host usando informações de tipo PIA incorporadas no assembly da solução, em vez de chamar o PIA diretamente. Para obter mais informações, consulte Projetar e criar soluções do Office.

Processo de carregamento

As etapas a seguir ocorrem quando um usuário inicia um aplicativo:

  1. O aplicativo verifica o registro para entradas que identificam suplementos VSTO que foram criados usando as ferramentas de desenvolvedor do Office no Visual Studio.

  2. Se o aplicativo encontrar essas entradas do Registro, o aplicativo carregará VSTOEE.dll, que carrega VSTOLoader.dll. Essas são DLLs não gerenciadas que são os componentes do carregador para o Visual Studio 2010 Tools for Office Runtime. Para obter mais informações, consulte Visão geral do tempo de execução do Visual Studio Tools for Office.

  3. VSTOLoader.dll carrega o .NET Framework e inicia a parte gerenciada do tempo de execução do Visual Studio Tools for Office.

  4. O tempo de execução do Visual Studio Tools for Office verifica se há atualizações de manifesto e baixa os manifestos de aplicativo e implantação mais recentes.

  5. O Visual Studio Tools for Office runtime executa uma série de verificações de segurança. Para obter mais informações, consulte Soluções do Office Seguro.

  6. Se o suplemento VSTO for confiável para execução, o tempo de execução do Visual Studio Tools for Office usará o manifesto de implantação e o manifesto do aplicativo para verificar se há atualizações de assembly. Se uma nova versão do assembly estiver disponível, o tempo de execução baixará a nova versão do assembly para o cache do ClickOnce no computador cliente. Para obter mais informações, consulte Implantar uma solução do Office.

  7. O tempo de execução do Visual Studio Tools for Office cria um novo domínio de aplicativo no qual carregar o assembly do suplemento VSTO.

  8. O tempo de execução do Visual Studio Tools for Office carrega o assembly do suplemento VSTO no domínio do aplicativo.

  9. O Visual Studio Tools for Office runtime chama o RequestComAddInAutomationService método em seu suplemento VSTO, se você o tiver substituído.

    Opcionalmente, você pode substituir esse método para expor um objeto em seu suplemento VSTO para outras soluções do Microsoft Office. Para obter mais informações, consulte Código de chamada em suplementos VSTO de outras soluções do Office.

  10. O Visual Studio Tools for Office runtime chama o RequestService método em seu suplemento VSTO, se você o tiver substituído.

    Opcionalmente, você pode substituir esse método para estender um recurso do Microsoft Office retornando um objeto que implementa uma interface de extensibilidade. Para obter mais informações, consulte Personalizar recursos da interface do usuário usando interfaces de extensibilidade.

    Observação

    O Visual Studio Tools for Office runtime faz chamadas separadas para o RequestService método para cada interface de extensibilidade que é suportada pelo aplicativo host. Embora a primeira chamada para o método geralmente aconteça antes da chamada para o método, seu suplemento VSTO não deve fazer suposições sobre quando o RequestServiceThisAddIn_StartupRequestService método será chamado ou quantas vezes ele será chamado.

  11. O Visual Studio Tools for Office runtime chama o ThisAddIn_Startup método em seu suplemento VSTO. Esse método é o manipulador de eventos padrão para o Startup evento. Para obter mais informações, consulte Eventos em projetos do Office.