Sintomas
Quando tenta gerar informações de biblioteca de tipo utilizando a assemblagem de Microsoft.VisualStudio.Shell.Interop.dll no Microsoft Visual Studio 2008, poderá detectar um dos seguintes sintomas.
Sintoma 1
Quando utiliza o utilitário Regasm.exe para gerar e para registar uma biblioteca de tipos, poderá receber a seguinte mensagem de erro:
RegAsm: erro RA000: o exportador de bibliotecas encontrou um erro ao processar "Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject, Microsoft.VisualStudio.Shell.Interop". Erro: Escreva 'SVsSolutionObject' e 'SVsSolution' ambas têm o mesmo UUID.
Sintoma 2
Quando utilizar o utilitário de TlbExp.exe para gerar uma biblioteca de tipos, poderá receber a seguinte mensagem de erro:
TlbExp: erro TX0000: o exportador de biblioteca de tipos encontrou um erro ao processar 'Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject, Microsoft.VisualStudio.Shell.Interop'. Erro: Escreva 'SVsSolutionObject' e 'SVsSolution' ambas têm o mesmo UUID.
Sintoma 3
Um pacote do Visual Studio 2008 implementa uma colecção de propriedades é exposta pela propriedade EnvDTE.DTE.Properties . Se a colecção é um membro de um objecto que utiliza um tipo a partir da assemblagem de Microsoft.VisualStudio.Shell.Interop.dll , o common language runtime (CLR) não criará a biblioteca de tipos de memória necessária para a assemblagem. Por exemplo, a seguinte macro do Visual Studio que referencia a propriedade EnvDTE.DTE.Properties falhará e, em seguida, irá receber uma mensagem de erro.
Dim proj As Project = DTE.Solution.Projects.Item(1) Dim props As Properties = proj.ConfigurationManager.ActiveConfiguration.Properties
Causa
Este problema ocorre porque o atributo ImportedFromTypelib é removido a partir da assemblagem de Microsoft.VisualStudio.Shell.Interop.dll no Visual Studio 2008. O atributo ImportedFromTypelib é removido porque esta assemblagem não tem uma biblioteca de tipo associado. Por conseguinte, o atributo ImportedFromTypelib provoca falhas quando o CLR tenta localizar uma biblioteca de tipo associado.
Porque foi removido o atributo ImportedFromTypelib no Visual Studio 2008, o CLR não é possível construir a biblioteca de tipos de memória necessária para a assemblagem de Microsoft.VisualStudio.Shell.Interop.dll . Esta falha é causada por GUIDs de tipo duplicado.Resolução
Informações sobre correção
Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção. Para transferir esta correcção a partir da Galeria de códigos MSDN, visite o seguinte Web site da Microsoft:
http://code.msdn.microsoft.com/KB946308 Nota Galeria de códigos MSDN apresenta os idiomas nos quais a correcção está disponível. Se não vir o idioma listado, é porque a página de recursos da Galeria de códigos não está disponível para esse idioma. Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Pré-requisitos
Tem de ter o Visual Studio 2008 instalado para aplicar esta correcção.
Requisito de reinício
Não é necessário reiniciar o computador depois de aplicar esta correcção.
Informações sobre substituição da correção
Esta correção não substitui uma correção disponibilizada anteriormente.
Informações de ficheiro
A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item data e hora no painel de controlo.
Nome do ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
---|---|---|---|---|---|
Microsoft.VisualStudio.Shell.Interop.dll |
7.10.6071.0 |
259152 |
07-Jan-2008 |
15:37 |
x86 |
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais informações
Esta correcção marca os GUIDs duplicados, definindo o valor da propriedade ComVisible como false para que o gerador de biblioteca de tipo irá ignorar os GUIDs duplicados.
Para mais informações sobre a terminologia de atualização de software, clique no seguinte número de artigo para visualizar o artigo na Base de Dados de Conhecimento Microsoft:824684 descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft