Solucionar problemas em soluções do Office
Aplica-se a: Visual Studio 2022
Este artigo apresenta como solucionar problemas que você pode encontrar ao executar tarefas diferentes ao desenvolver 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 seu projeto, sair do Visual Studio e começar novamente.
Se você estiver tentando criar um projeto em nível de documento, é possível que outro documento com o mesmo nome do documento no novo projeto já esteja aberto no Excel ou Word. Verifique se todas as outras instâncias do Excel ou Word estão 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 quaisquer controles que estejam no documento não serão copiadas para o novo projeto. Reinicie 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 seguintes erros.
- Do 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: "Designer falha ao carregar corretamente".
Esses erros podem ocorrer ao tentar 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:
- Abra a pasta de trabalho no Excel.
- No Excel, abra o Centro de Confiança.
- Na guia Opções de Privacidade, desmarque a caixa Remover informações pessoais das propriedades do arquivo na caixa salvar marcar.
- 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 for migrada para o Microsoft Office 2010, o projeto não poderá ser aberto em um computador de desenvolvimento com apenas o sistema do Microsoft Office de 2007 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 resolve esse problema, edite o arquivo .vbproj ou .csproj. Para um projeto Word, substitua por HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
. Para um projeto do Excel, substitua por HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}"
HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}"
. Para um projeto do Outlook, substitua por HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}"
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 do documento do Office 2003 que contêm controles Windows Forms
Se você atualizar um projeto no nível do documento do Microsoft Office 2003 e o documento contiver controles Windows Forms, o projeto atualizado poderá ter erros de compilação ou de runtime. 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 runtime está disponível como um pacote redistribuível do 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 Visual Studio 2005 Tools for Office Second Edition Runtime 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 documento, a pasta de trabalho ou o designer de planilhas em projetos no nível do documento.
Problema 1: Designer falha ao carregar corretamente
O Visual Studio não pode abrir o designer nos seguintes casos:
- O Excel ou Word já está aberto e está exibindo uma caixa de diálogo modal. Para abrir o designer, marcar para ver se o Excel ou Word tem uma caixa de diálogo modal aberta e feche as caixas de diálogo modal abertas. Se não houver caixas de diálogo modais abertas, talvez haja alguma outra ação necessária antes que o Excel ou Word responda.
- No momento, o projeto está sendo depurado. Para abrir o designer, pare ou conclua a depuração.
- Um Suplemento VSTO do Excel 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, primeiro desabilite o Suplemento 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 a funcionalidade deles.
Problema 3: os controles em um modelo de Word não estão visíveis no Visual Studio
Se você abrir um modelo Word no designer do Visual Studio, os controles no modelo que não estão em linha com o texto podem não estar visíveis. Isso ocorre porque o Visual Studio abre Word modelos no modo de exibição Normal. Para exibir os controles, selecione o menu Exibir, aponte para Exibição de Word do Microsoft Office e selecione Layout de Impressão.
Problema 4: Inserir comando clip-art não faz nada no designer do Visual Studio
Quando o Excel ou Word estiver 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 documento que está na pasta de projeto main (não a cópia que está na pasta \bin) fora do Visual Studio, adicionar a arte do clipe e salvar a pasta de trabalho ou o documento.
Problemas ao gravar 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ário) 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 tenha o mesmo nome que outra propriedade ou método do objeto. Para acessar o evento, você deve lançar o objeto para sua interface de evento.
Tipos 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 que são expostos pelo objeto. Essas interfaces de evento usam a convenção de nomenclatura _<objectname>Events<n>Event, como AppEvents_Event e ApplicationEvents2_Event. Se você não puder acessar um evento que espera encontrar em um objeto, caste o objeto para sua interface de evento.
Por exemplo, Application os objetos têm um NewWorkbook evento e uma NewWorkbook propriedade. Para lidar com o NewWorkbook evento, selecione o Application para a AppEvents_Event interface. O exemplo de código a seguir demonstra como fazer isso em um projeto em 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 evento nos PIAs do Office, consulte Visão geral das classes e interfaces nos assemblies de interoperabilidade primários do Office.
Problema 2: não é possível referenciar classes PIA do Office em projetos que visam o .NET Framework 4 ou o .NET Framework 4.5
Em projetos que visam o .NET Framework 4 ou o .NET Framework 4.5, o código que faz referência a uma classe definida em uma PIA do Office não será compilado por padrão. As classes nos PIAs usam a classe de nome de objeto>de convenção< de nomenclatura, como DocumentClass e WorkbookClass. Por exemplo, o código a seguir de um projeto de suplemento VSTO Word 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#: "Tipo de interoperabilidade 'Microsoft.Office.Interop. Word. DocumentClass' não pode ser inserido. Use a interface aplicável em vez disso."
Para resolve 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.
Projetos que visam o .NET Framework 4 ou o .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 funciona apenas com interfaces, não com classes. Para obter mais informações sobre interfaces e classes nos PIAs do Office, confira Visão geral das 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, as Importações/usando a instrução na parte superior dos modelos de projeto incluem uma constante de qualificação de abreviação, por exemplo:
Esse uso da instrução Imports/usando requer que você diferencie as referências às classes do Office com o qualificador Word ou excel, por exemplo:
Você receberá erros se usar uma declaração não qualificada, por exemplo:
Mesmo que você tenha importado o namespace Word ou excel e tenha acesso a todas as classes dentro dele, você deve qualificar totalmente todos os tipos com Word ou 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 com base 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 com 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 é a planilha ativa no designer, o código gerado automaticamente poderá não ser removido do projeto e erros do compilador poderão ocorrer. Para garantir que o código seja removido, você sempre deve selecionar a planilha que contém o NamedRange controle para torná-lo a planilha ativa antes de excluir o controle. Se o código gerado automaticamente não for excluído quando você excluir o controle, poderá fazer com que o designer exclua o código ativando a planilha e fazendo uma alteração para que a planilha fique 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 desinstalar aparece quando você publica e instala uma solução no computador de desenvolvimento
Ao depurar uma solução do Office, você poderá 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 a solução do Office no 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: os projetos no nível do documento criados em locais de rede UNC não são executados no Visual Studio
Se você criar um projeto no nível do 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 aos 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, nomeará cada thread com o prefixo VSTA_ para garantir que esses threads sejam tratados corretamente quando você parar de depurar. Por exemplo, você pode definir a Name
propriedade de um thread que espera que um evento de rede VSTA_NetworkListener.
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 .NET Framework, para armazenar em cache os assemblies antes de carregar soluções do Office. Verifique se o Visual Studio pode gravar no cache fusion e tente novamente. Para obter mais informações, consulte Assemblies de cópia do Shadow.
Problema 5: erro ao parar o depurador em um projeto no nível do documento depois de usar Editar e Continuar
Se você usar Editar e Continuar a fazer alterações no código em um projeto no nível do documento para Excel ou Word enquanto o projeto estiver no modo de interrupção, você poderá ver uma caixa de diálogo com a seguinte mensagem de erro se parar o depurador.
Encerrar o processo em seu estado atual pode causar resultados indesejados, incluindo a perda de dados e a instabilidade do sistema.
Se você selecionar Sim ou Não na caixa de diálogo, o Visual Studio encerra o processo do Excel ou Word e interrompe o depurador. Para parar de depurar o projeto sem exibir essa caixa de diálogo, saia do Excel ou Word diretamente em vez de parar o depurador no Visual Studio.