Partilhar via


Solucionar problemas em soluções do Office

Aplica-se a: Visual Studio

Este artigo apresenta como solucionar problemas que você pode encontrar ao executar tarefas diferentes durante o desenvolvimento de soluções do Office no Visual Studio。

Problemas ao criar, atualizar e abrir projetos

Você pode encontrar os seguintes problemas ao criar ou abrir projetos do Office.

Problema 1: O projeto não pode ser criado

Se ocorrer um erro ao tentar criar ou abrir um projeto do Office, mas o Visual Studio não tiver informações suficientes para determinar a causa, tente fechar o projeto, sair do Visual Studio e começar novamente.

Se você estiver tentando criar um projeto no nível do documento, é possível que outro documento com o mesmo nome do documento no novo projeto já esteja aberto no Excel ou no Word. Certifique-se de que todas as outras instâncias do Excel ou do Word estejam fechadas.

Problema 2: As propriedades de controle são perdidas quando você cria um novo projeto com base em um documento de um projeto existente

Se você criar um novo projeto do Office com base em um documento de um projeto existente, as propriedades de todos os controles que estão no documento não serão copiadas para o novo projeto. Redefina as propriedades de todos os controles pré-existentes manualmente. Como alternativa, você pode preservar as propriedades de controle criando uma cópia do projeto existente em vez de criar um novo projeto ou carregando o projeto existente na nova solução (no designer) e copiando e colando os controles do documento existente para o novo documento.

Problema 3: Erros ao criar um projeto de pasta de trabalho do Excel com base em uma pasta de trabalho existente

Se você criar um novo projeto de pasta de trabalho do Excel com base em uma pasta de trabalho existente, poderá ver uma combinação dos erros a seguir.

  • No Excel: "Aviso de privacidade: este documento contém macros, controles ActiveX, informações do pacote de expansão XML ou componentes da Web. Isso pode incluir informações pessoais que não podem ser removidas pelo Inspetor de Documentos.
  • Do Visual Studio: "O designer falhou ao carregar corretamente."

Esses erros podem ocorrer quando você tenta criar um projeto baseado em uma pasta de trabalho que teve suas informações pessoais removidas usando o Inspetor de Documentos. Para evitar esse PROBLEMA, execute as seguintes etapas antes de criar o projeto:

  1. Abra a pasta de trabalho no Excel.
  2. No Excel, abra a Central de Confiabilidade.
  3. Na guia Opções de Privacidade, desmarque a caixa de seleção Remover informações pessoais das propriedades do arquivo ao salvar .
  4. Salve a pasta de trabalho e feche o Excel.

Problema 4: Não é possível abrir um projeto após a migração

Depois que uma solução do Office é migrada para o Microsoft Office 2010, o projeto não pode ser aberto em um computador de desenvolvimento com apenas o 2007 Microsoft Office System instalado. Você pode ver os seguintes erros.

  • "Um ou mais projetos na solução não foram carregados corretamente. Consulte a janela de saída para obter detalhes."
  • "Não é possível criar o projeto porque o aplicativo associado a esse tipo de projeto não está instalado neste computador. Você deve instalar o aplicativo do Microsoft Office associado a esse tipo de projeto."

Para resolver esse problema, edite o arquivo .vbproj ou .csproj . Para um projeto do Word, substitua HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" por HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}". Para um projeto do Excel, substitua HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" por HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}". Para um projeto do Outlook, substitua HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" por HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}".

Como alternativa, verifique se os projetos migrados só são abertos em computadores de desenvolvimento com o Microsoft Office 2010 já instalado.

Problema 5: Erros em projetos atualizados no nível de documento do Office 2003 que contêm controles do Windows Forms

Se você atualizar um projeto de nível de documento do Microsoft Office 2003 e o documento contiver controles do Windows Forms, o projeto atualizado poderá ter erros de compilação ou de tempo de execução. Para evitar esse problema, instale o Visual Studio 2005 Tools for Office Second Edition Runtime no computador de desenvolvimento antes de atualizar o projeto. Esta versão do tempo de execução está disponível como um pacote redistribuível no Centro de Download da Microsoft no Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86).

Depois de concluir a atualização do projeto, você poderá desinstalar o Tempo de Execução das Ferramentas do Visual Studio 2005 para Office Segunda Edição do computador de desenvolvimento se ele não estiver sendo usado por nenhuma outra solução do Office.

Problemas ao usar os designers

Você pode encontrar os seguintes problemas ao trabalhar com o designer de documento, pasta de trabalho ou planilha em projetos no nível do documento.

Problema 1: Falha ao carregar corretamente o designer

O Visual Studio não pode abrir o designer nos seguintes casos:

  • O Excel ou o Word já está aberto e está exibindo uma caixa de diálogo modal. Para abrir o designer, verifique se o Excel ou o Word tem uma caixa de diálogo modal aberta e feche todas as caixas de diálogo modais abertas. Se não houver caixas de diálogo modais abertas, pode haver alguma outra ação necessária antes que o Excel ou o Word respondam.
  • O projeto está sendo depurado no momento. Para abrir o designer, pare ou conclua a depuração.
  • Um suplemento do Excel VSTO instalado no computador de desenvolvimento está exibindo uma caixa de diálogo quando o Excel é iniciado. Para criar um projeto no nível do documento do Excel, você deve primeiro desabilitar o Suplemento do VSTO.

Problema 2: os controles aparecem como retângulos pretos no documento ou na planilha

Se você agrupar controles em um documento ou planilha, o Visual Studio não reconhecerá mais os controles. Os controles agrupados não podem ser acessados na janela Propriedades e aparecem como retângulos pretos no documento ou na planilha. Você deve desagrupar os controles para restaurar sua funcionalidade.

Problema 3: os controles em um modelo do Word não estão visíveis no Visual Studio

Se você abrir um modelo do Word no designer do Visual Studio, os controles no modelo que não estão alinhados com o texto podem não estar visíveis. Isso ocorre porque o Visual Studio abre modelos do Word no modo de exibição Normal . Para exibir os controles, selecione o menu Exibir , aponte para Modo de Exibição do Microsoft Office Word e selecione Layout de Impressão.

Problema 4: o comando Inserir clip-art não faz nada no designer do Visual Studio

Quando o Excel ou o Word é aberto no designer do Visual Studio, clicar no botão Clip-art na guia Ilustrações na faixa de opções não abre o painel de tarefas Clip-art . Para adicionar clip-art, você deve abrir a cópia da pasta de trabalho ou do documento que está na pasta principal do projeto (não a cópia que está na pasta \bin ) fora do Visual Studio, adicionar o clip-art e salvar a pasta de trabalho ou o documento.

Problemas ao escrever código

Você pode encontrar os seguintes problemas ao escrever código em projetos do Office.

Problema 1: alguns eventos de objetos do Office não são acessíveis ao usar C#

Em alguns casos, você pode ver um erro do compilador como o seguinte ao tentar acessar um evento específico de uma instância de um tipo PIA (assembly de interoperabilidade primária) do Office em um projeto do Visual C#.

Ambiguidade entre 'Microsoft.Office.Interop.Excel._Application.NewWorkbook' e 'Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook'

Esse erro significa que você está tentando acessar um evento que tem o mesmo nome de outra propriedade ou método do objeto. Para acessar o evento, você deve converter o objeto em sua interface de evento.

Os tipos de PIA do Office que têm eventos implementam duas interfaces: uma interface principal com todas as propriedades e métodos e uma interface de evento que contém os eventos expostos pelo objeto. Essas interfaces de eventos usam a convenção de nomenclatura _<objectname>Eventos<n>Evento, como AppEvents_Event e ApplicationEvents2_Event. Se você não puder acessar um evento que espera encontrar em um objeto, converta o objeto em sua interface de eventos.

Por exemplo, Application os objetos têm um NewWorkbook evento e uma NewWorkbook propriedade. Para manipular o NewWorkbook evento, converta AppEvents_Event o Application na interface. O exemplo de código a seguir demonstra como fazer isso em um projeto de nível de documento para Excel.

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    ((Excel.AppEvents_Event)this.Application).NewWorkbook += 
        new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}

void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
    // Perform some work here.
}

Para obter mais informações sobre interfaces de eventos nos PIAs do Office, consulte Visão geral de classes e interfaces nos assemblies de interoperabilidade primários do Office.

Problema 2: não é possível fazer referência a classes PIA do Office em projetos direcionados ao .NET Framework 4 ou ao .NET Framework 4.5

Em projetos direcionados ao .NET Framework 4 ou ao .NET Framework 4.5, o código que faz referência a uma classe definida em um PIA do Office não será compilado por padrão. As classes nos PIAs usam a convenção <de nomenclatura objectname>Class, como DocumentClass e WorkbookClass. Por exemplo, o código a seguir de um projeto de suplemento do Word VSTO não será compilado.

Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;

Esse código resulta nos seguintes erros de compilação:

  • Visual Basic: "A referência à classe 'DocumentClass' não é permitida quando seu assembly está vinculado usando o modo No-PIA."
  • Visual C#: "O tipo de interoperabilidade 'Microsoft.Office.Interop.Word.DocumentClass' não pode ser inserido. Em vez disso, use a interface aplicável."

Para resolver esse erro, modifique o código para fazer referência à interface correspondente. Por exemplo, em vez de fazer referência a um DocumentClass objeto, faça referência a uma instância da Document interface.

Word.Document document = Globals.ThisAddIn.Application.ActiveDocument;

Os projetos direcionados ao .NET Framework 4 ou ao .NET Framework 4.5 inserem automaticamente todos os tipos de interoperabilidade dos PIAs do Office por padrão. Esse erro de compilação ocorre porque o recurso de tipos de interoperabilidade inseridos só funciona com interfaces, não com classes. Para obter mais informações sobre interfaces e classes nos PIAs do Office, consulte Visão geral de classes e interfaces nos assemblies de interoperabilidade primários do Office. Para obter mais informações sobre o recurso de tipos de interoperabilidade inseridos em projetos do Office, consulte Projetar e criar soluções do Office.

Problema 3: As referências às classes do Office não são reconhecidas

Alguns nomes de classe, por exemplo, Application, estão em vários namespaces, como Microsoft.Office.Interop.Word e System.Windows.Forms. Por esse motivo, a instrução Imports/using na parte superior dos modelos de projeto inclui uma constante de qualificação abreviada, por exemplo:

using Word = Microsoft.Office.Interop.Word;

Esse uso da instrução Imports/using requer que você diferencie as referências a classes do Office com o qualificador do Word ou do Excel, por exemplo:

Word.Document doc;

Você receberá erros se usar uma declaração não qualificada, por exemplo:

Document doc;  // Class is ambiguous

Mesmo que você tenha importado o namespace do Word ou do Excel e tenha acesso a todas as classes dentro dele, você deve qualificar totalmente todos os tipos com o Word ou o Excel para remover a ambiguidade do namespace.

Problemas ao criar projetos

Você pode encontrar os seguintes problemas ao criar projetos do Office.

Problema 1: Não é possível criar um projeto no nível do documento baseado em um documento com permissões restritas

O Visual Studio não poderá criar projetos no nível do documento se o documento tiver permissões restritas. Se o projeto contiver um documento com permissões restritas, o projeto não será compilado e você receberá a seguinte mensagem na janela Lista de Erros.

Falha ao adicionar a personalização.

Se você quiser incluir um documento que tenha permissões restritas, use um documento irrestrito enquanto desenvolve e cria a solução. Em seguida, aplique as permissões restritas ao documento no local de publicação, depois de publicar a solução.

Problema 2: erros do compilador ocorrem depois que um controle NamedRange é excluído

Se você excluir um NamedRange controle de uma planilha que não seja a planilha ativa no designer, o código gerado automaticamente poderá não ser removido do projeto e poderão ocorrer erros no compilador. Para garantir que o código seja removido, você sempre deve selecionar a planilha que contém o NamedRange controle para torná-la a planilha ativa antes de excluir o controle. Se o código gerado automaticamente não for excluído quando você excluir o controle, você poderá fazer com que o designer exclua o código ativando a planilha e fazendo uma alteração para que a planilha seja marcada como modificada. Quando você recompila o projeto, o código é removido.

Problemas ao depurar projetos

Você pode encontrar os seguintes problemas ao depurar projetos do Office.

Problema 1: o prompt para desinstalação aparece quando você publica e instala uma solução no computador de desenvolvimento

Ao depurar uma solução do Office, você pode ver o erro a seguir.

A personalização não pode ser instalada porque outra versão está instalada no momento e não pode ser atualizada desse local.

Esse erro indica que você publicou e instalou anteriormente a solução do Office em seu computador de desenvolvimento. Para impedir que a mensagem apareça, desinstale a solução da lista de programas instalados no computador antes de depurar a solução. Como alternativa, você pode criar outra conta de usuário em seu computador de desenvolvimento para testar a instalação da solução publicada.

Problema 2: projetos em nível de documento criados em locais de rede UNC não são executados no Visual Studio

Se você criar um projeto de nível de documento para Excel ou Word em um local de rede UNC, deverá adicionar o local do documento à lista de locais confiáveis no Excel ou Word. Caso contrário, a personalização não será carregada quando você tentar executar ou depurar o projeto no Visual Studio. Para obter mais informações sobre locais confiáveis, consulte Conceder confiança a documentos.

Problema 3: os threads não são interrompidos corretamente após a depuração

Os projetos do Office no Visual Studio seguem uma convenção de nomenclatura de thread que permite que o depurador feche o programa corretamente. Se você criar threads em sua solução, deverá nomear cada thread com o prefixo VSTA_ para garantir que esses threads sejam tratados corretamente quando você interromper a depuração. Por exemplo, você pode definir a Name propriedade de um thread que aguarda a VSTA_NetworkListener de um evento de rede.

Problema 4: Não é possível executar ou depurar nenhuma solução do Office no computador de desenvolvimento

Se você não puder executar ou desenvolver um projeto do Office em seu computador de desenvolvimento, poderá ver a seguinte mensagem de erro.

A personalização não pôde ser carregada porque o domínio do aplicativo não pôde ser criado.

O Visual Studio usa o Fusion, o carregador de assembly do .NET Framework, para armazenar em cache os assemblies antes de carregar as soluções do Office. Verifique se o Visual Studio pode gravar no cache do Fusion e tente novamente. Para obter mais informações, consulte Assemblies de cópia de sombra.

Problema 5: Erro ao interromper o depurador em um projeto no nível do documento após usar Editar e Continuar

Se você usar Editar e Continuar para fazer alterações no código em um projeto de nível de documento para Excel ou Word enquanto o projeto estiver no modo de interrupção, poderá ver uma caixa de diálogo com a seguinte mensagem de erro se interromper o depurador.

Encerrar o processo em seu estado atual pode causar resultados indesejados, incluindo a perda de dados e instabilidade do sistema.

Se você selecionar Sim ou Não na caixa de diálogo, o Visual Studio encerrará o processo do Excel ou do Word e interromperá o depurador. Para interromper a depuração do projeto sem exibir essa caixa de diálogo, saia do Excel ou do Word diretamente em vez de interromper o depurador no Visual Studio.

Referências