Partilhar via


Solucionando problemas de erros de tempo de execução em soluções do Office

Você pode encontrar problemas ao executar as seguintes tarefas em tempo de execução em soluções do Office que foram criados no Visual studio:

  • Instalando soluções

  • Carregar ou executar soluções

  • Usando eventos, métodos e propriedades específicas em soluções

  • Personalizando a interface do usuário

  • A ligação de dados a controles e cache de dados

  • Usando a classe ServerDocument

Instalando soluções

O Visual Studio Tools for Office runtime grava as mensagens para o Visualizador de eventos do Windows para todas as exceções que são lançados ao instalar ou desinstalar o Office solutions. Você pode usar essas mensagens para solucionar problemas de implantação e de instalação. For more information, see Log de eventos para soluções do Office.

Você pode encontrar os seguintes erros ao instalar o Office solutions.

Um suplemento não pode ser instalado usando a caixa de diálogo suplementos COM

Se você tentar usar o Suplementos COM caixa de diálogo em um aplicativo do Office para instalar um suplemento que você criou usando o Office developer tools em Visual Studio, você verá o seguinte erro.

"o nome do suplemento. dll não é um Add-in do Office válido."

Não é possível usar o Suplementos COM caixa de diálogo para instalar um suplemento que você criou usando as ferramentas de desenvolvedor do Office em Visual Studio. Em vez disso, faça o seguinte:

  • Se você está tentando executar o suplemento no seu computador de desenvolvimento, construir o projeto e inicie o aplicativo do Office. Seu suplemento deverá ser carregado automaticamente. Como alternativa, clique em Start Without Debugging sobre o Debug menu no Visual Studio. For more information, see Visão Geral do Processo de Compilação de uma Solução Office.

  • Se você está tentando depurar o suplemento no seu computador de desenvolvimento, pressione F5 ou clique Start Debugging sobre o Debug menu no Visual Studio. For more information, see Depuração de projetos de nível de aplicativo.

  • Se você está tentando instalar o add-in em um computador de usuário final, use ClickOnce ou o Windows Installer para implantar o add-in. For more information, see Implantar soluções do Office.

Solução instala com êxito, mas FrameworkVersionMismatchException É relatado no Visualizador de eventos

Quando você instala uma solução do Office que foi criada usando o Visual Studio, você poderá ver um erro no Visualizador de eventos que se refere a uma Microsoft.VisualStudio.Tools.Applications.Deloyment.FrameworkVersionMismatchException que está sendo lançada. Essa exceção não indica um erro real com a solução e você pode ignorá-la normalmente.

Essa exceção é capturada e internamente pelo Visual Studio Tools for Office runtime Quando você instala uma solução do Office que se destina a.NET Framework 4 em um computador que tem ambos o.NET Framework 3.5 e o.NET Framework 4 instalado. O Visual Studio Tools for Office runtime usa essa exceção para determinar qual versão do common language runtime (CLR) para carregar para a solução.

Carregar ou executar soluções

O Visual Studio Tools for Office runtime pode gravar todos os erros que ocorrem durante a inicialização para um arquivo de log ou exibem cada erro em uma caixa de mensagem. Por padrão, essas opções estão desativadas. Você pode ativar as opções Criando variáveis de ambiente. For more information, see Depuração no nível do documento projetos and Depuração de projetos de nível de aplicativo.

Você pode encontrar os seguintes erros quando as soluções do Office são carregadas ou executadas.

Common Language Runtime ou Microsoft.NET Framework não pôde ser carregado

Computador do usuário final deve ter a versão do.NET Framework destinado pela solução. Para obter mais informações sobre versões do.NET Framework que você pode direcionar em soluções do Office, consulte Projetando e criando soluções do Office.

Assembly não pode ser encontrado ou carregado

Esse problema faz com que a seguinte mensagem de erro a ser exibido.

"O assembly de personalização não pôde ser encontrado ou não pôde ser carregado. Você ainda pode editar e salvar o documento. Contate o administrador ou o autor deste documento para obter assistência."

Para resolver esse erro, tente as seguintes opções:

  • Verifique que o usuário tem acesso para o local do assembly e que o conjunto nomeado existe. For more information, see Assemblies na visão geral das soluções do Office.

  • Se o assembly está disponível, verifique se o Word ou Excel está executando uma personalização, como, por exemplo, um suplemento, marca inteligente ou documento inteligente, que é carregado explicitamente o.NET Framework 1.1. Para resolver o problema, desabilite quaisquer personalizações que carregar explicitamente o.NET Framework 1.1. Esta versão do.NET Framework não pode ser carregado no mesmo processo do aplicativo com versões posteriores do.NET Framework. For more information, see Execução de lado a lado no processo.

    ObservaçãoObservação

    As marcas inteligentes estão obsoletas no Excel 2010 e Word 2010. For more information, see Visão geral sobre marcas inteligentes.

  • Verifique se uma exceção não tratada no assembly de personalização está impedindo o carregamento do assembly. Depuração definido de sua solução com o depurador para quebrar no common language runtime exceptions ou com o quebra quando as exceções ultrapassarem limites do AppDomain ou limites gerenciados/nativos opção selecionada a Opções caixa de diálogo. For more information, see Como: Manipular erros em projetos do Office.

  • Você pode obter informações adicionais, definindo as variáveis de ambiente que tornam o Visual Studio Tools for Office runtime Exibir mensagens de erro detalhadas e gravar todas as ações para um arquivo de log. Para obter mais informações, consulte Depuração no nível do documento projetos e Depuração de projetos de nível de aplicativo.

Um suplemento não carrega ou está desabilitado

Existem várias possibilidades para verificar se um suplemento em nível de aplicativo não carregar corretamente:

  • Se o aplicativo Microsoft Office fecha inesperadamente ou se ocorrer um erro enquanto um add-in está inicializando, o aplicativo pode desabilitar o suplemento. For more information, see Como: Reativar um suplemento que tenha sido desativado.

  • O aplicativo de Microsoft Office pode estar executando um suplemento carregado explicitamente o.NET Framework 1.1. Para resolver o problema, desabilite quaisquer suplementos que carregar explicitamente o.NET Framework 1.1. Esta versão do.NET Framework não pode ser carregado no mesmo processo do aplicativo com versões posteriores do.NET Framework. For more information, see Execução de lado a lado no processo.

  • Você pode obter informações adicionais, definindo as variáveis de ambiente que tornam o Visual Studio Tools for Office runtime Exibir mensagens de erro detalhadas e gravar todas as ações para um arquivo de log. For more information, see Depuração de projetos de nível de aplicativo.

Tipo não pode ser carregado.

Esse problema faz com que a seguinte mensagem de erro a ser exibida:

"Não foi possível carregar o tipo de projectname do assembly assemblyname."

Essa mensagem pode aparecer se você ofuscar o código em seu projeto do Office. As alterações de código, os nomes de todas as classes de ofuscação. Entretanto, os nomes de classe original são referenciados no manifesto, e o ofuscador não altera o manifesto.

Para evitar esse erro, adicione os nomes das classes geradas em seu projeto para a lista do perturbador das classes não para renomear.

Documento do Office abre sem erros, mas o código não é executado.

Os motivos que o código não é executado e nenhuma mensagem de erro exibida incluem:

  • O Office assemblies de interoperabilidade primários (PIAs) não estão instalados no cache global de assemblies, possivelmente porque o.NET Framework não está instalado no computador, ou porque os PIAs não foram instalados durante a instalação do Office.

  • Um projeto de documento do Word é aberto no Visual Studio no mesmo computador. Fechar Visual Studio e reabra o documento.

For more information, see Depuração no nível do documento projetos.

Usando eventos, métodos e propriedades específicas em soluções

Você pode encontrar os seguintes problemas relacionados a propriedades específicas, métodos e eventos na assemblies de interoperabilidade primários (PIAs) a Microsoft Office e o Visual Studio Tools for Office runtime.

Evento DocumentChange não é disparado quando um documento é aberto no Word

O DocumentChange evento é gerado quando o ativo documentar alterações. Além disso, ele geralmente é disparado quando um documento é aberto. No entanto, por causa das diferentes maneiras de que o Word pode abrir documentos (por exemplo, de uma linha de comando, no Windows Explorer ou no menu Arquivo no Word), o DocumentChange evento não é sempre gerado quando o documento é aberto. Ele sempre deve ser gerado quando o documento ativo é alterado após a abertura. Se você quiser executar ações quando o documento for aberto, use o Startup de evento.

Eventos do Excel são disparados de maneira diferente no Internet Explorer que no Excel

Se uma pasta de trabalho é hospedada dentro do Internet Explorer, os eventos são gerados em uma ordem diferente daquela que se a pasta de trabalho é aberta no Excel. Além disso, alguns dos eventos são gerados duas vezes. Se sua solução inclui o Internet Explorer, um teste como a seqüência de eventos diferentes afeta a operação da solução.

Novo evento não é disparado quando um documento é criado a partir de um modelo

Quando você usa um Prompt de comando para abrir um modelo do Word e crie um novo documento, você deve usar a opção /z para aumentar a New de evento. Não inclua um espaço após /z ou Word abre o modelo para edição em vez de criar um novo documento baseado no modelo. For example: winword.exe /z"mytemplate.dot"

Isso é semelhante a usar a opção /t, com a adição desse /z eleva o New de evento.

Evento Open não é disparado quando uma planilha XML for aberta.

Se você basear um projeto do Excel em uma planilha existente de não-nativos (como o formato XML do Excel), o Open evento não é disparado quando a planilha será aberta.

BeforeClose método Runs, mas a pasta de trabalho do usuário mantém aberta

É possível que um usuário final cancelar a operação de fechamento de uma pasta de trabalho e continuar a usar a sua solução após a BeforeClose chamada de manipulador de eventos. Isso acontece quando o usuário faz alterações em uma planilha e em seguida, executa uma ação para fechar a pasta de trabalho sem salvar primeiro. O BeforeClose é chamada de manipulador de eventos, e em seguida, o usuário será apresentado uma caixa de diálogo que tem a opção de cancelar a operação de fechamento.

Se você colocar o código no BeforeClose o manipulador de eventos que fecha conexões de banco de dados ou executa outras ações de limpeza, que o código pode ser chamado enquanto o usuário ainda está funcionando com sua solução.

Definindo o parâmetro ' Cancelar ' da caixa de diálogo Salvar como retorna o aviso impreciso ou faz o Word sair inesperadamente

Se Mostrar o SaveAs caixa de diálogo a partir de um manipulador de eventos para o DocumentBeforeSave evento e o conjunto de Cancel parâmetro para false, o aplicativo deve ser encerrado inesperadamente. Se você definir a Cancel parâmetro para true, uma mensagem de erro será exibida indicando que a gravação automática foi desativada.

Fechar método faz com que o Word e Excel para sair inesperadamente

Quando você chama o Close o método de um documento ou pasta de trabalho de um formulário sem janela restrita, o aplicativo deve ser encerrado inesperadamente. Todos os documentos abertos ou pastas de trabalho serão fechada e dados podem ser perdidos. Se Microsoft Office Outlook de usa o Word como seu editor de email, todas as abertas também podem fechar a mensagens de email. Isso também pode ocorrer se você exibir Windows Forms ou caixas de mensagem durante o tratamento de AppDomain.DomainUnload de evento.

Para contornar esse problema, não chamar o Close o método de um formulário sem janela restrita ou em um evento para um formulário sem janela restrita. Em vez disso, use os seguintes procedimentos:

  • Use os formulários de janela restrita (por exemplo, usando ShowDialog em vez de Show) se você deve fechar o documento a partir do formulário.

  • Se você precisar usar um formulário sem janela restrita, certifique-se de que o formulário sem janela restrita está fechado e que as referências de forma completamente são destruídas antes de tentar fechar o documento ou pasta de trabalho. The following code shows an example. Para usar esse código, executá-lo do ThisDocument a classe em um projeto de nível de documento para Word.

    Dim form1 As SampleForm
    
    Sub OpenForm()
        form1 = New SampleForm
        form1.Show()  ' Show the form modelessly.
    End Sub
    
    Sub ForceShutdown()
    
        ' Completely close the form if it is still running.
        ' Note that hiding the form might not work by itself.
    
        If (Not form1 Is Nothing) Then
            form1.Close()
            form1.Dispose()
            form1 = Nothing
        End If
    
        Me.Close()
    End Sub
    
    SampleForm form1;
    
    private void OpenForm()
    {
        form1 = new SampleForm();
        form1.Show();  // Show form modelessly.
    }
    
    private void ForceShutdown()
    {
        // Completely close the form if it is still running.
        // Note that hiding the form might not work by itself.
    
        if (form1 != null)
        {
            form1.Close();
            form1.Dispose();
            form1 = null;
        }
        object saveChanges = Word.WdSaveOptions.wdSaveChanges; 
        this.Close(ref saveChanges, ref missing, ref missing);
    }
    

Para obter informações sobre o parâmetro missing em C#, consulte Parâmetros opcionais em soluções do Office.

InvalidCastException é lançada quando passar um controle de Host do Excel para um método

Alguns métodos e propriedades no Excel requerem que você passe-os um objeto nativo do Office. Se o Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute atributo está definido como false em um projeto que tem como alvo o.NET Framework 3.5 e você passa em um controle de host que se baseia em um objeto nativo do Office, ele lança um InvalidCastException. Você pode usar o InnerObject propriedade dos controles de host para passar os objetos subjacentes de Office nativos para esses métodos e propriedades. Para obter mais informações sobre problemas de localização no Excel, consulte Formatação de dados no Excel com várias configurações regionais.

Interface de usuário Customizating

Você pode encontrar os seguintes erros relacionados a tipos específicos de personalizações de interface do usuário em soluções do Office.

Windows Forms controles se comportam imprevisível quando o Excel planilha janela está dividida

Se você dividir uma janela da planilha que contém controles Windows Forms, os controles talvez não se comportar da mesma forma nas duas janelas. Por exemplo, se você executar o código para alterar o BackColor propriedade de um TextBox em uma planilha, a alteração pode aparecer em apenas um do windows.

Não é possível adicionar páginas de propriedades personalizadas nos suplementos do Outlook

Se o suplemento do Outlook cria uma página de propriedade personalizada para o Opções caixa de diálogo do Outlook ou o Propriedades caixa de diálogo de uma pasta do Outlook, você deve explicitamente tornar a página de propriedade personalizada visível para COM (por padrão, o assembly não é visível para COM). Caso contrário, o add-in será reprovado criar a página de propriedade personalizada e você pode receber uma COMException durante a depuração do add-in.

Há duas maneiras de se tornar uma página de propriedade personalizada visível para COM:

  • Adicionar um ComVisibleAttribute para a classe que implementa a página de propriedade personalizada em seu projeto. Para obter informações sobre como aplicar atributos às classes, consulte Aplicando atributos.

  • Use Visual Studio para fazer com que seu suplemento assembly inteiro visível para com.

    Para fazer com que o assembly do suplemento visível ao COM usando Visual Studio

    1. No Visual Studio, clique com o botão direito do projeto na Solution Explorere em seguida, clique em Propriedades.

    2. Click the Application tab.

    3. Clique o Informações de Assembly botão.

    4. Selecione o Tornar assembly visível usando COM caixa de seleção.

    5. Click OK.

A ligação de dados a controles e cache de dados

Você pode encontrar os seguintes erros em soluções do Office que usam vinculação de dados ou dados em cache.

Ligação de dados de uma falha de ListObject se é exibida uma caixa de diálogo Modal

Se o Excel exibirá uma caixa de diálogo modal enquanto o dataset que é vinculado a um ListObject está sendo atualizado, a vinculação de dados da ListObject falha. Quando o ListObject perde os dados de vinculação, eleva a DataBindingFailure evento. Para vincular a ListObject para a fonte de dados novamente, manipular o DataBindingFailure evento e a chamada a SetDataBinding método.

Nomes em cache de conjunto de dados de Visual Basic não aparecem corretamente no Cache de dados

DataSetobjetos criados usando o Visual Basic que são marcadas como Cached e WithEvents (incluindo DataSet objetos arrastados da Fontes de dados janela ou o caixa de ferramentas que possuem o CacheInDocument propriedade definida como True) ter um sublinhado prefixado seus nomes no cache. Por exemplo, se você criar um DataSet e nome de clientes, o CachedDataItem nome será _Customers no cache. Quando você usa ServerDocument para acessar este item em cache, você deve especificar o _Customers em vez de clientes.

Usando a classe ServerDocument

Você pode encontrar os seguintes erros em soluções do Office que usam o Microsoft.VisualStudio.Tools.Applications.ServerDocument classe.

Não é possível executar aplicativos legados que ServerDocument de uso em computadores que têm apenas as ferramentas Visual Studio de 2010 para Office Runtime instalado

Se você tentar executar um aplicativo que usa o Microsoft.VisualStudio.Tools.Applications.ServerDocument classe na Visual Studio Tools for Office system (versão 3.0 Runtime) em um computador que tenha somente a Visual Studio 2010 Tools for Office Runtime instalado, o aplicativo pode falhar inesperadamente. Para executar o aplicativo, instale o Visual Studio Tools for Office system (versão 3.0 Runtime) no computador. Ambas as versões do runtime podem ser instaladas no mesmo computador.

Consulte também

Tarefas

Solucionando problemas de erros de tempo de Design em soluções do Office

Solucionando problemas de segurança de solução do Office

Conceitos

Solucionando problemas de implantação de solução do Office

Outros recursos

Solucionando problemas soluções do Office

Histórico de alterações

Date

History

Motivo

Setembro de 2010

Adicionadas informações sobre como exibir erros de instalação e a carga.

Aprimoramento de informações.

Maio de 2010

Adicionada a seção sobre FrameworkVersionMismatchException.

Aprimoramento de informações.