Implantando uma solução VSTO usando o Windows Installer

Resumo

Saiba como implantar um suplemento do Microsoft Visual Studio Tools for Office (VSTO) ou uma solução em nível de documento usando um projeto do Visual Studio Installer.

Wouter van Vugt, Advogado de Código

Ted Pattison, Grupo Ted Pattison

Este artigo foi atualizado pela Microsoft com permissão dos autores originais.

Aplica-se a: Visual Studio Tools for Office, Microsoft Office, Microsoft Visual Studio.

Você pode desenvolver uma solução VSTO e implantar a solução usando um pacote do Windows Installer. Esta discussão inclui etapas para implantar um Suplemento do Office simples.

Métodos de implantação

O ClickOnce pode ser facilmente usado para criar configurações para seus suplementos e soluções. No entanto, ele não pode instalar suplementos que exigem privilégios administrativos, como suplementos no nível do computador.

Os suplementos que exigem privilégios administrativos podem ser instalados usando o Windows Installer, mas exigem mais esforço para criar a instalação.

Para obter uma visão geral de como implantar uma solução VSTO usando o ClickOnce, consulte Implantar uma solução do Office usando o ClickOnce.

Implantando soluções do Office destinadas ao tempo de execução do VSTO

Os pacotes ClickOnce e Windows Installer precisam fazer as mesmas tarefas rudimentares ao instalar uma solução do Office.

  1. Instale os componentes de pré-requisito no computador do usuário.
  2. Implante os componentes específicos para a solução.
  3. Para Suplementos, crie entradas do Registro.
  4. Confie na solução para permitir que ela seja executada.

Componentes de pré-requisito necessários no computador de destino

Aqui está a lista de softwares que devem ser instalados no computador para executar soluções VSTO:

  • Microsoft Office 2010 ou mais recente.
  • O Microsoft .NET Framework 4 ou mais recente.
  • Microsoft Visual Studio 2010 Tools for Office Runtime. O tempo de execução fornece um ambiente que gerencia suplementos e soluções em nível de documento. Uma versão do Runtime é fornecida com o Microsoft Office, mas talvez você queira redistribuir uma versão específica com seu suplemento.
  • Os assemblies de interoperabilidade primária para o Microsoft Office, se você não estiver usando tipos de interoperabilidade incorporados.
  • Quaisquer montagens de utilitários referenciadas por projetos.

Componentes específicos para a solução

O pacote do instalador deve instalar esses componentes no computador do usuário:

  • O documento do Microsoft Office, se você criar uma solução em nível de documento.
  • O assembly de personalização e quaisquer montagens necessárias.
  • Componentes adicionais, como arquivos de configuração.
  • O manifesto do aplicativo (. manifest).
  • O manifesto de implantação (.vsto).

Entradas do Registro para suplementos

O Microsoft Office usa entradas do Registro para localizar e carregar suplementos. Essas entradas do Registro devem ser criadas como parte do processo de implantação. Para obter mais informações sobre essas entradas do Registro, consulte Entradas do Registro para suplementos VSTO.

Os suplementos do Outlook que exibem regiões de formulário personalizadas exigem entradas de registro adicionais que permitem que as regiões de formulário sejam identificadas. Para obter mais informações sobre entradas do Registro, consulte Entradas do Registro para regiões de formulário do Outlook.

As soluções em nível de documento não exigem nenhuma entrada do Registro. Em vez disso, as propriedades dentro do documento são usadas para localizar a personalização. Para obter mais informações sobre essas propriedades, consulte Visão geral das propriedades personalizadas do documento.

Confiando na solução VSTO

Para que uma personalização seja executada, uma solução deve ser confiável para a máquina. O suplemento pode ser confiável assinando o manifesto com um certificado, criando uma relação de confiança com uma lista de inclusão ou instalando-o em um local confiável na máquina.

Para obter mais informações sobre como obter um certificado para assinatura, consulte Implantação do ClickOnce e Authenticode. Para obter mais informações sobre soluções confiáveis, consulte Confiando em soluções do Office usando listas de inclusão. Você pode adicionar uma entrada de lista de inclusão com uma ação personalizada no arquivo do Windows Installer. Para obter mais informações sobre como habilitar a lista de inclusão, consulte Como configurar a segurança da lista de inclusão.

Se nenhuma das opções for usada, um prompt de confiança será exibido ao usuário para permitir que ele decida se deseja confiar na solução.

Para obter mais informações sobre segurança relacionada a soluções em nível de documento, consulte Concedendo confiança a documentos.

Criando um instalador básico

Os modelos de projeto de instalação e implantação estão incluídos com a extensão Microsoft Visual Studio Installer Projects que está disponível para download.

Para criar um instalador para uma solução do Office, estas tarefas devem ser realizadas:

  • Adicione os componentes da Solução do Office que serão implantados.
  • Para suplementos no nível do aplicativo, configure as chaves do Registro.
  • Configure os componentes de pré-requisito para que possam ser instalados nos computadores dos usuários finais.
  • Configure as condições de inicialização para verificar se os componentes de pré-requisito necessários estão disponíveis. As condições de inicialização podem ser usadas para bloquear a instalação se todos os pré-requisitos necessários não estiverem instalados.

O primeiro passo é criar o projeto de instalação.

Para criar o projeto de instalação do AddIn

  1. Abra o Projeto AddIn do Office que você deseja implantar. Para este exemplo, estamos usando um suplemento do Excel chamado ExcelAddIn.
  2. Com o Office Project Open, no menu Arquivo , expanda Adicionar e clique em Novo Projeto para adicionar um novo projeto.
  1. Na caixa de diálogo Adicionar um Novo Projeto, selecione o modelo Projeto de Instalação.
  2. Clique em Avançar.
  1. Na caixa Nome, digite OfficeAddInSetup.
  1. Clique em Criar para criar o novo projeto de instalação.

O Visual Studio abre o Gerenciador do Sistema de Arquivos para o novo projeto de instalação. O Gerenciador do Sistema de Arquivos permite que você adicione arquivos ao projeto de instalação.

Screenshot of the File System Explorer for the setup project

Figura 1: File System Explorer para o projeto de instalação

O projeto de instalação precisa implantar o ExcelAddIn. Você pode configurar o projeto de instalação para esta tarefa adicionando a saída do projeto ExcelAddIn ao projeto de instalação.

Para adicionar a saída do projeto ExcelAddIn

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em OfficeAddInSetup, clique em Adicionar e em Saída do Projeto.

  2. Na caixa de diálogo Adicionar Grupo de Saída do Projeto, selecione ExcelAddIn na lista de projetos e Saída Primária.

  3. Clique em OK para adicionar a saída do projeto ao projeto de instalação.

    Screenshot of the Setup Project Add Project Output Group dialog

    Figura 2: Caixa de diálogo Adicionar grupo de saída do projeto de instalação

O projeto de instalação precisa implantar o manifesto de implantação e o manifesto do aplicativo. Adicione esses dois arquivos ao projeto de instalação como arquivos autônomos da pasta de saída do projeto ExcelAddIn.

Para adicionar os manifestos de implantação e de aplicativo

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em OfficeAddInSetup, clique em Adicionar e clique em Arquivo.

  2. Na caixa de diálogo Adicionar arquivos, navegue até o diretório de saída ExcelAddIn. Normalmente, o diretório de saída é a subpasta bin\release do diretório raiz do projeto, dependendo da configuração de compilação selecionada.

  3. Selecione os arquivos ExcelAddIn.vsto e ExcelAddIn.dll.manifest e clique em Abrir para adicionar esses dois arquivos ao projeto de instalação.

    Screenshot of the Application and deployment manifests in Solution Explorer

    Figura 3: Manifestos de aplicativo e implantação para o suplemento no Gerenciador de Soluções

Referenciar o ExcelAddIn inclui todos os componentes que o ExcelAddIn requer. Esses componentes devem ser excluídos e implantados usando pacotes de pré-requisitos para permitir que sejam registrados corretamente. Além disso, os Termos de Licença para Software devem ser exibidos e aceitos antes do início da instalação.

Para excluir as dependências do projeto ExcelAddIn

  1. No Gerenciador de Soluções, no nó OfficeAddInSetup, selecione todos os itens de dependência abaixo do item Dependências Detectadas, exceto Microsoft .NET Framework ou qualquer assembly que termine com *. Utilitários.dll. Os assemblies de utilitários devem ser implantados junto com seu aplicativo.

  2. Clique com o botão direito do mouse no grupo e selecione Propriedades.

  3. Na janela Propriedades, altere a propriedade Exclude para True para excluir os assemblies dependentes do projeto de instalação. Certifique-se de não excluir nenhum assembly de utilitários.

    Screenshot of Solution Explorer showing the dependencies to exclude

    Figura 4: Excluindo dependências

Você pode configurar o pacote do Windows Installer para instalar componentes de pré-requisito adicionando um programa de instalação, também conhecido como bootstrapper. Este programa de instalação pode instalar os componentes de pré-requisito, um processo chamado bootstrapping.

Para o ExcelAddIn, esses pré-requisitos devem ser instalados para que o suplemento possa ser executado corretamente:

  • A versão do Microsoft .NET Framework que a solução do Office destina.
  • Ferramentas do Microsoft Visual Studio 2010 para Office Runtime.

Para configurar componentes dependentes como pré-requisitos

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto OfficeAddInSetup e selecione Propriedades.

  2. A caixa de diálogo Páginas de propriedades OfficeAddInSetup é exibida.

  3. Clique no botão Pré-requisitos .

  4. Na caixa de diálogo Pré-requisitos, selecione a versão correta do .NET Framework e o Microsoft Visual Studio Tools for Office Runtime.

    Screenshot of the Prerequisites Dialog Box

    Figura 5: Caixa de diálogo Pré-requisitos

    Observação

    Alguns dos pacotes de pré-requisitos configurados em seu projeto de instalação do Visual Studio dependem da configuração de compilação selecionada. Você deve selecionar os componentes de pré-requisito corretos para cada configuração de compilação usada.

O Microsoft Office localiza suplementos usando chaves do Registro. As chaves na seção HKEY_CURRENT_USER são usadas para registrar o suplemento para cada usuário individual. As chaves sob a seção HKEY_LOCAL_MACHINE são usadas para registrar o suplemento para todos os usuários da máquina. Para obter mais informações sobre chaves do Registro, consulte Entradas do Registro para suplementos VSTO.

Para configurar o registro

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em OfficeAddInSetup.

  2. Expanda Exibir.

  3. Clique em Registro para abrir a janela do editor do Registro .

  4. No editor Registry(OfficeAddInSetup), expanda HKEY_LOCAL_MACHINE e, em seguida, Software.

  5. Exclua a chave [Fabricante] encontrada em HKEY_LOCAL_MACHINE\Software.

  6. Expanda HKEY_CURRENT_USER e, em seguida, Software.

  7. Exclua a chave [Fabricante] encontrada em HKEY_CURRENT_USER\Software.

  8. Para adicionar chaves do Registro para a instalação do suplemento, clique com o botão direito do mouse na chave Hive Usuário/Máquina, selecione Nova Chave. Use o texto Software para o nome da nova chave. Clique com o botão direito do mouse na chave Software recém-criada e crie uma nova chave com o texto Microsoft.

  9. Use um processo semelhante para criar toda a hierarquia de chaves necessária para o registro do suplemento:

    Usuário/Máquina Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    O Nome da Empresa é frequentemente usado como um prefixo para o nome do suplemento para fornecer exclusividade.

  10. Clique com o botão direito do mouse na chave SampleCompany.ExcelAddIn , selecione Novo e clique em Valor da cadeia de caracteres. Use o texto Descrição para o Nome.

  11. Use esta etapa para adicionar mais três valores:

    • FriendlyName do tipo String
    • LoadBehavior do tipo DWORD
    • Manifesto do tipo String
  12. Clique com o botão direito do mouse no valor Descrição no editor do Registro e clique em Janela Propriedades. Na janela Propriedades, insira Excel Demo AddIn para a propriedade Value.

  13. Selecione a chave FriendlyName no editor do Registro. Na janela Propriedades, altere a propriedade Value para Excel Demo AddIn.

  14. Selecione a chave LoadBehavior no editor do Registro. Na janela Propriedades, altere a propriedade Value para 3. O valor 3 para o LoadBehavior indica que o suplemento deve ser carregado na inicialização do aplicativo host. Para obter mais informações sobre o comportamento de carregamento, consulte Entradas do Registro para suplementos VSTO.

  15. Selecione a chave Manifest no editor do Registro. Na janela Propriedades, altere a propriedade Value para file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    Screenshot of the Registry Editor

    Figura 6: Configurando chaves do Registro

    O tempo de execução do VSTO usa essa chave do Registro para localizar o manifesto de implantação. A macro [TARGETDIR] será substituída pela pasta onde o suplemento está instalado. A macro incluirá o caractere \ à direita, portanto, o nome do arquivo do manifesto de implantação deve ser ExcelAddIn.vsto sem o caractere \. O postfix vstolocal , informa ao tempo de execução do VSTO que o suplemento deve ser carregado desse local em vez do cache ClickOnce. A remoção desse postfix fará com que o tempo de execução copie a personalização para o cache do ClickOnce.

Aviso

Você deve ter muito cuidado com o Editor do Registro no Visual Studio. Por exemplo, se você acidentalmente definir DeleteAtUninstall para a chave errada, você pode excluir uma parte ativa do registro, deixando o computador do usuário em um estado inconsistente, ou ainda pior, quebrado.

As versões de 64 bits do Office usarão o hive do Registro de 64 bits para procurar suplementos. Para registrar suplementos na seção do Registro de 64 bits, a plataforma de destino do projeto de instalação deve ser definida como somente 64 bits.

  1. Selecione o projeto OfficeAddInSetup no gerenciador de soluções.
  2. Vá para a janela Propriedades e defina a propriedade TargetPlatform como x64.

A instalação de um suplemento para as versões de 32 bits e 64 bits do Office exigirá que você crie dois pacotes MSI separados. Um para 32 bits e outro para 64 bits.

Screenshot of the Properties Window showing the Target Platform for registering Add-ins with 64-bit Office

Figura 7: Plataforma de destino para registrar suplementos com o Office de 64 bits

Se o pacote MSI for usado para instalar o suplemento ou a solução, ele poderá ser instalado sem que os pré-requisitos necessários sejam instalados. Você pode usar Condições de Inicialização no MSI para bloquear a instalação do suplemento se os pré-requisitos não estiverem instalados.

Configurar uma condição de inicialização para detectar o VSTO Runtime

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em OfficeAddInSetup.

  2. Expanda Exibir.

  3. Clique em Condições de Inicialização.

  4. No editor Condições de Inicialização(OfficeAddInSetup), clique com o botão direito do mouse em Requisitos no Computador de Destino e clique em Adicionar Condição de Inicialização do Registro. Essa condição de pesquisa pode procurar no Registro uma chave que o tempo de execução do VSTO instale. O valor da chave é então disponível para as várias partes do instalador através de uma propriedade nomeada. A condição de inicialização usa a propriedade definida pela condição de pesquisa para verificar um determinado valor.

  5. No editor Condições de Inicialização(OfficeAddInSetup), selecione a condição de pesquisa Pesquisar RegistryEntry1, clique com o botão direito do mouse na condição e selecione Janela Propriedades.

  6. Na janela Propriedades, defina estas propriedades:

    1. Defina o valor de (Name) como Search for VSTO 2010 Runtime.
    2. Altere o valor de Property para VSTORUNTIMEREDIST.
    3. Defina o valor de RegKey como SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Deixe a propriedade Root definida como vsdrrHKLM.
    5. Altere a propriedade Value para Version.
  7. No editor Condições de Inicialização(OfficeAddInSetup), selecione a condição de inicialização Condition1, clique com o botão direito do mouse na condição e selecione Janela Propriedades.

  8. Na janela Propriedades, defina estas propriedades:

    1. Defina o (Name) para Verificar a disponibilidade do VSTO 2010 Runtime.

    2. Altere o valor da condição para VSTORUNTIMEREDIST>="10.0.30319"

    3. Deixe a propriedade InstallURL em branco.

    4. Defina a mensagem como O Visual Studio 2010 Tools for Office Runtime não está instalado. Execute a instalação.exe para instalar o suplemento.

      Screenshot of the Properties Window for the Verify Runtime Availability launch condition

      Figura 8: Janela Propriedades para a condição de inicialização Verify Runtime Availability

A condição de inicialização acima verifica explicitamente a presença do tempo de execução do VSTO quando ele é instalado pelo pacote bootstrapper.

Configurar uma condição de inicialização para detectar o VSTO Runtime instalado pelo Office

  1. No editor Condições de Inicialização(OfficeAddInSetup), clique com o botão direito do mouse em Search Target Machine e clique em Add Registry Search (Adicionar Pesquisa do Registro).

  2. Selecione a condição de pesquisa Pesquisar RegistryEntry1 , clique com o botão direito do mouse na condição e selecione Janela Propriedades.

  3. Na janela Propriedades, defina estas propriedades:

    1. Defina o valor de (Name) como Search for Office VSTO Runtime.
    2. Altere o valor de Property para OfficeRuntime.
    3. Defina o valor de RegKey como SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. Deixe a propriedade Root definida como vsdrrHKLM.
    5. Altere a propriedade Value para Version.
  4. No editor Condições de Inicialização(OfficeAddInSetup), selecione a condição de inicialização Verificar disponibilidade do VSTO 2010 Runtime definida anteriormente, clique com o botão direito do mouse na condição e selecione Janela Propriedades.

  5. Altere o valor da propriedade Condition para VSTORUNTIMEREDIST >="10.0.30319" OU OFFICERUNTIME>="10.0.21022". Os números de versão podem ser diferentes para você, dependendo das versões do tempo de execução que seu suplemento exige.

    Screenshot of the Properties Windows for the launch condition

    Figura 9: Propriedades do Windows para a condição Verificar disponibilidade do tempo de execução por meio do Redist ou da inicialização do Office

Se um suplemento tem como destino o .NET Framework 4 ou mais recente, os tipos dentro dos assemblies de interoperabilidade primários (PIA), que são referenciados, podem ser incorporados ao assembly VSTO.

Para verificar se os tipos de interoperabilidade serão incorporados em seu suplemento executando as seguintes etapas:

  1. Expandir o nó Referências no Gerenciador de Soluções
  2. Selecione uma das referências do PIA, por exemplo, Office.
  3. Exiba as janelas de propriedades pressionando F4 ou selecionando Propriedades no menu de contexto Assemblies.
  4. Verifique o valor da propriedade Embed Interop Types.

Se o valor estiver definido como True, os Tipos estão sendo incorporados e você pode pular para a seção Para criar o projeto de instalação.

Para obter mais informações, consulte Equivalência de tipos e tipos de interoperabilidade incorporados

Para configurar condições de inicialização para detectar isso para PIAs do Office

  1. No editor Condições de Inicialização(OfficeAddInSetup), clique com o botão direito do mouse em Requisitos no Computador de Destino e clique em Adicionar Condição de Inicialização do Windows Installer. Essa condição de inicialização procura um PIA do Office pesquisando a ID do componente específico.

  2. Clique com o botão direito do mouse em Procurar Componente1 e clique em Janela de Propriedades para mostrar as propriedades da condição de inicialização.

  3. Na janela Propriedades, defina estas propriedades:

    1. Altere o valor da propriedade (Name) para Search for Office Shared PIA
    2. Altere o valor de ComponentID para Component Id para o componente do Office que você está usando. Você pode encontrar a lista de IDs de componentes na tabela abaixo, por exemplo {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Altere o valor da propriedade Property para HASSHAREDPIA.
  4. No editor Condições de Inicialização(OfficeAddInSetup), clique com o botão direito do mouse em Condition1 e clique em Janela de Propriedades para mostrar as propriedades da condição de inicialização.

  5. Altere estas propriedades de Condition1:

    1. Altere o (Nome) para Verificar a disponibilidade do PIA compartilhado do Office.
    2. Altere a condição para HASSHAREDPIA.
    3. Deixe InstallUrl em branco.
    4. Alterar a mensagem para um componente necessário para interagir com o Excel não está disponível. Execute a instalação.exe.

    Screenshot of the Properties Window for the Verify Office Shared PIA launch condition

    Figura 10: Janela Propriedades para a condição de inicialização Verificar PIA compartilhado do Office

IDs de componente dos assemblies de interoperabilidade primários para o Microsoft Office

Montagem de interoperabilidade primária Office 2010 Office 2013 Office 2013 (64 bits) Office 2016 Office 2016 (64 bits)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D4406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Marcação Inteligente {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Escritório compartilhado {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Projeto {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Screenshot of the Final launch conditions

Figura 11: Condições finais de lançamento

Você pode refinar ainda mais as condições de inicialização para a instalação do ExcelAddIn. Por exemplo, talvez seja útil verificar se o aplicativo do Office de destino real está instalado.

Para criar o projeto de instalação

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto OfficeAddInSetup e clique em Compilar.
  2. Usando o Windows Explorer, navegue até o diretório de saída do projeto OfficeAddInSetup e vá para a pasta Release ou Debug, dependendo da configuração de compilação selecionada. Copie todos os arquivos da pasta para um local que os usuários possam acessar.

Para testar a instalação do ExcelAddIn

  1. Navegue até o local para o qual você copiou OfficeAddInSetup .
  2. Clique duas vezes no arquivo .exe instalação para instalar o suplemento OfficeAddInSetup . Aceite os Termos de Licença para Software exibidos e conclua o assistente de configuração para instalar o suplemento no computador do usuário.

A solução do Excel Office deve ser instalada e executada a partir do local especificado durante a instalação.

Requisitos adicionais para soluções em nível de documento

A implantação de soluções em nível de documento requer algumas etapas de configuração diferentes no projeto de instalação do Windows Installer.

Aqui está uma lista de etapas básicas necessárias para implantar uma solução em nível de documento:

  • Crie o projeto de instalação do Visual Studio.
  • Adicione a saída principal da sua solução em nível de documento. A saída principal também inclui o documento do Microsoft Office.
  • Adicione os manifestos de implantação e aplicativo como arquivos soltos.
  • Exclua os componentes dependentes do pacote do instalador (exceto para quaisquer assemblies de utilitários).
  • Configurar pacotes de pré-requisitos.
  • Configurar condições de inicialização.
  • Crie o projeto de instalação e copie os resultados para o local de implantação.
  • Implante a solução em nível de documento no computador do usuário executando a instalação.
  • Atualize as propriedades personalizadas do documento, se necessário.

Alterando o local do documento implantado

As propriedades dentro de um documento do Office são usadas para localizar soluções em nível de documento. Se o documento estiver instalado na mesma pasta que o assembly VSTO, nenhuma alteração será necessária. No entanto, se ele estiver instalado em pasta diferente, essas propriedades precisarão ser atualizadas durante a instalação.

Para obter mais informações sobre essas propriedades do documento, consulte Visão geral das propriedades personalizadas do documento.

Para alterar essas propriedades, você precisa usar uma ação personalizada durante a instalação.

O exemplo a seguir usa uma solução de nível de documento chamada ExcelWorkbookProject e um projeto de instalação chamado ExcelWorkbookSetup. O projeto ExcelWorkbookSetup é configurado usando as mesmas etapas descritas acima, exceto para definir as chaves do Registro.

Para adicionar o projeto de ação personalizada à sua solução do Visual Studio

  1. Adicione um novo projeto do Console .NET à solução clicando com o botão direito do mouse no Projeto de Implantação de Documento do Office no Gerenciador de Soluções

  2. Expanda Adicionar e clique em Novo Projeto.

  3. Selecione o modelo Aplicativo de Console e nomeie o projeto AddCustomizationCustomAction.

    Screenshot of the Solution Explorer - AddCustomizationCustomAction

    Figura 12: Gerenciador de Soluções - AddCustomizationCustomAction

  4. Adicione uma referência a estes assemblies:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Copie este código para Programa.cs ou Programa.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Para adicionar a personalização ao documento, você precisa ter a ID da solução de nível de documento VSTO. Esse valor é recuperado do arquivo de projeto do Visual Studio.

Para recuperar a ID da solução

  1. No menu Compilar, clique em Compilar Solução para criar a solução em nível de documento e adicionar a propriedade ID da solução ao arquivo de projeto.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto de nível de documento ExcelWorkbookProject

  3. Clique em UnloadProject para acessar o arquivo de projeto de dentro do Visual Studio.

    Screenshot of Solution Explorer Unloading Excel Document Solution

    Figura 13: Descarregando a solução de documento do Excel

  4. No Gerenciador de Soluções, clique com o botão direito do mouse em ExcelWorkbookProject e clique em EditExcelWorkbookProject.vbproj ou em Edit ExcelWorkbookProject.csproj.

  5. No editor ExcelWorkbookProject, localize o elemento SolutionID dentro do elemento PropertyGroup.

  6. Copie o valor GUID deste elemento.

    Retrieving the SolutionID

    Figura 14: Recuperando o SolutionID

  7. No Gerenciador de Soluções, clique com o botão direito do mouse em ExcelWorkbookProject e clique em Recarregar Projeto.

  8. Clique em Sim na caixa de diálogo que aparece para fechar o editor ExcelWorkbookProject.

  9. A ID da Solução será usada na Ação Personalizada de Instalação.

A última etapa é configurar a ação personalizada para as etapas de Instalação e Desinstalação .

Para configurar o projeto de instalação

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em ExcelWorkbookSetup, expanda Adicionar e clique em Saída do Projeto.

  2. Na caixa de diálogo Adicionar Grupo de Saída do Projeto, na lista Projeto, clique em AddCustomizationCustomAction.

  3. Selecione Saída primária e clique em OK para fechar a caixa de diálogo e adicionar o assembly que contém a ação personalizada ao projeto de instalação.

    Screenshot of the Document Manifest Custom Action - Add Project Output Group window

    Figura 15: Ação personalizada de manifesto de documento - Adicionar grupo de saída do projeto

  4. No Gerenciador de Soluções, clique com o botão direito do mouse em ExcelWorkbookSetup.

  5. Expanda Exibir e clique em Ações Personalizadas.

  6. No editor Ações Personalizadas(ExcelWorkbookSetup), clique com o botão direito do mouse em Ações Personalizadas e clique em Adicionar Ação Personalizada.

  7. Na caixa de diálogo Selecionar Item no Projeto, na lista Examinar, clique em Pasta do Aplicativo. Selecione Saída primária de AddCustomizationCustomAction(active) e clique em OK para adicionar a ação personalizada à etapa Instalar.

  8. No nó Instalar, clique com o botão direito do mouse em Saída primária de AddCustomizationCustomAction(Active) e clique em Renomear. Nomeie a ação personalizada Copiar documento para Meus Documentos e anexe personalização.

  9. No nó Desinstalar, clique com o botão direito do mouse em Saída primária de AddCustomizationCustomAction(Active) e clique em Renomear. Nomeie a ação personalizada Remover documento da pasta Documentos.

    Screenshot of the Document Manifest Custom Actions window

    Figura 16: Ações personalizadas do manifesto do documento

  10. No editor Ações Personalizadas(ExcelWorkbookSetup), clique com o botão direito do mouse em Copiar documento para Meus Documentos e anexe personalização e clique em Janela Propriedades.

  11. Na janela Propriedades de CustomActionData, insira o local da DLL de personalização, o manifesto de implantação e o local do documento do Microsoft Office. O SolutionID também é necessário.

  12. Se você deseja registrar quaisquer erros de instalação em um arquivo, inclua um parâmetro LogFile. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Screenshot of the Custom Action to Copy Document to My Documents Properties window

    Figura 17: Ação personalizada para copiar documento para meus documentos

  13. A Ação Personalizada para Desinstalação precisa do nome do documento, você pode fornecê-lo usando o mesmo parâmetro documentLocation no CustomActionData

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Compile e implante o projeto ExcelWorkbookSetup .

  15. Examine a pasta Meus documentos e abra o arquivo ExcelWorkbookProject.xlsx .

Recursos adicionais

Como: Instalar o Visual Studio Tools for Office Runtime

Assemblies de interoperabilidade primários do Office

Entradas do Registro para suplementos VSTO

Visão geral de propriedades de documento personalizadas

Especificando regiões de formulário no Registro do Windows

Concedendo confiança a documentos

Sobre os autores

Wouter van Vugt é um MVP da Microsoft com tecnologias Office Open XML e um consultor independente com foco na criação de Office Business Applications (OBAs) com SharePoint, Microsoft Office e tecnologias .NET relacionadas. Wouter é um colaborador frequente de sites da comunidade de desenvolvedores, como o MSDN. Ele publicou vários white papers e artigos, bem como um livro disponível on-line intitulado Open XML: Explained e-book. Wouter é o fundador da Code-Counsel, uma empresa holandesa focada em fornecer conteúdo técnico de ponta por meio de uma variedade de canais. Você pode descobrir mais sobre Wouter lendo seu blog.

Ted Pattison é MVP do SharePoint, autor, treinador e fundador do Ted Pattison Group. No outono de 2005, Ted foi contratado pelo grupo Developer Platform Evangelism da Microsoft para criar o currículo de treinamento de desenvolvedor Ascend para Windows SharePoint Services 3.0 e Microsoft Office SharePoint Server 2007. Desde então, Ted tem se concentrado inteiramente em educar desenvolvedores profissionais sobre as tecnologias do SharePoint 2007. Ted terminou de escrever um livro para a Microsoft Press intitulado Inside Windows SharePoint Services 3.0 que se concentra em como usar o SharePoint como uma plataforma de desenvolvimento para criar soluções de negócios. Ted também escreve uma coluna focada no desenvolvedor para a MSDN Magazine intitulada Office Space.