Instantando o VisualStudio 2008
-
19-09-2019 - |
Pergunta
Estou tentando obter uma lista de todos os projetos em uma solução especificada do VS2008. (Este é um aplicativo de console independente, não é um suplemento do Visual Studio)
Meu código funciona com soluções VS2005, mas recebo todos os tipos de erros de comedoria feios tentando usar o objeto VS2008.
O que quero dizer é: isto:
Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0");
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE;
funciona e isso:
Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.9.0");
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE;
Atualmente (atualmente lança Erro 8001010)
Tenho duas classes relevantes registradas no registro e todas as assembléias apropriadas são referenciadas.
EDIT: Eu vou com a análise básica do arquivo .sln, mesmo que eu tenha que fazer um pouco de reescrita, pois a manipulação de texto deve funcionar sem todas as coisas desagradáveis. No entanto, não consigo encontrar uma descrição do formato .SLN, algum recurso?
Solução
Você pode querer olhar para isso: Biblioteca para analisar arquivos de solução do Visual Studio? Se analisar o .SLN diretamente, é sua única opção.
Quanto ao seu problema atual, Algumas outras pessoas tiveram seu problema. o KB246018 diz que confira seu antivírus como a principal causa (Exemplo é palavra, mas o mesmo se aplica a vs). Tente excluir completamente o diretório VS.
Outras dicas
Você está recebendo um erro de RPC: "O servidor está ocupado". Isso pode ser porque o Visual Studio está realmente ocupado, depurando seu programa de modo de console. Além de depurar com as instruções console.WriteLine (), tente outro depurador. O Windows SDK possui os depuradores clrdbg.exe e mdbg.exe. O .NET 2.0 SDK tinha um depurador da GUI IIRC.