Sintomas
Quando você tenta gerar informações de biblioteca de tipo usando o assembly Microsoft.VisualStudio.Shell.Interop.dll no Microsoft Visual Studio 2008, você pode encontrar um dos seguintes sintomas.
Sintoma 1
Quando você usar o utilitário Regasm.exe para gerar e registrar uma biblioteca de tipos, você pode receber a seguinte mensagem de erro:
RegAsm: erro RA000: exportador da biblioteca encontrou um erro durante o processamento da "Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject Microsoft.VisualStudio.Shell.Interop". Erro: Digite 'SVsSolutionObject' e 'SVsSolution', digite ambos têm o mesmo UUID.
Sintoma 2
Quando você usar o utilitário TlbExp.exe para gerar uma biblioteca de tipos, você pode receber a seguinte mensagem de erro:
TlbExp: erro TX0000: o exportador da biblioteca encontrou um erro ao processar 'Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject Microsoft.VisualStudio.Shell.Interop'. Erro: Digite 'SVsSolutionObject' e 'SVsSolution', digite ambos têm o mesmo UUID.
Sintoma 3
Um pacote do Visual Studio 2008 implementa um conjunto de propriedade que é exposto pela propriedade EnvDTE.DTE.Properties . Se a coleção for um membro de um objeto que usa um tipo do conjunto Microsoft.VisualStudio.Shell.Interop.dll , o common language runtime (CLR) não construir a biblioteca de tipos de memória necessária para o assembly. Por exemplo, a seguinte macro do Visual Studio que referencia a propriedade EnvDTE.DTE.Properties não terá êxito e você receberá uma mensagem de erro.
Dim proj As Project = DTE.Solution.Projects.Item(1) Dim props As Properties = proj.ConfigurationManager.ActiveConfiguration.Properties
Causa
Esse problema ocorre porque o atributo ImportedFromTypelib é removido do conjunto Microsoft.VisualStudio.Shell.Interop.dll no Visual Studio 2008. O atributo ImportedFromTypelib é removido porque esse assembly não tem uma biblioteca de tipos associados. Portanto, o atributo ImportedFromTypelib causa falhas quando o CLR tenta encontrar uma biblioteca de tipos associados.
Porque o atributo ImportedFromTypelib foi removido no Visual Studio 2008, o CLR não pode construir a biblioteca de tipos de memória necessária para o assembly Microsoft.VisualStudio.Shell.Interop.dll . Essa falha é ocasionada pelo tipo duplicado GUIDs.
Resolução
Informações sobre o hotfix
Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir somente o problema descrito neste artigo. Aplique este hotfix somente aos sistemas que apresentarem esse problema específico. Esta correção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde a próxima atualização de software que contenha esse hotfix.
Para baixar esse hotfix do MSDN Code Gallery, visite o seguinte site da Microsoft:
http://code.msdn.microsoft.com/KB946308
Observação: O MSDN Code Gallery exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma listado, é porque a página de recursos da Galeria de código não está disponível para esse idioma.
Observação: caso outros problemas estejam ocorrendo ou caso qualquer solução de problemas seja necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não sejam específicos deste hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e suporte ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Pré-requisitos:
Você deve ter o Visual Studio 2008 instalado para aplicar esse hotfix.
Requisitos de reinicialização:
Você não precisa reiniciar o computador após aplicar esse hotfix.
Informações de substituição do hotfix:
Esse hotfix não substitui um hotfix lançado anteriormente.
Informações sobre o arquivo:
A versão em inglês deste hotfix possui os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas na Hora Universal Coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para localizar a diferença entre o UTC e a hora local, use a guia Fuso Horário no item Data e Hora no Painel de Controle.
Nome do Arquivo |
Versão do arquivo |
Tamanho do arquivo |
Data |
Hora |
Plataforma |
---|---|---|---|---|---|
Microsoft.VisualStudio.Shell.Interop.dll |
7.10.6071.0 |
259152 |
07-Jan-2008 |
15:37 |
x86 |
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Mais informações
Esse hotfix marca todos os GUIDs duplicados, definindo o valor da propriedade ComVisible para false para que o gerador de biblioteca de tipo irá ignorar os GUIDs duplicados.
Para obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
824684 descrição da terminologia padrão usada para descrever as atualizações de software