2010-02-10 6 views
1

지정한 VS2008 솔루션 내의 모든 프로젝트 목록을 가져 오려고합니다. (독립 실행 형 콘솔 응용 프로그램입니다. Visual Studio 추가 기능이 아닙니다.)Visual Studio 2008 인스턴스화

내 코드는 VS2005 솔루션과 함께 작동하지만 VS2008 개체를 사용하려고하면 모든 종류의 COM 오류가 발생합니다.

내가 의미하는 것 : 은이 :

Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0"); 
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE; 

작품이 :

Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.9.0"); 
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE; 

가 없습니다 (현재 발생 COM 오류 8001010a)

내가 모두 관련 클래스를 등록 않습니다 레지스트리에서 모든 적절한 어셈블리가 참조됩니다.


편집 : 텍스트 조작이 모든 불쾌한 상호 운용성 물건없이 작동 수밖에 없다 나는이 재 작성의 조금을해야 할 경우에도의 .sln 파일의 기본 구문 분석과 함께 갈 것입니다. 그러나 .sln 형식과 리소스에 대한 설명을 찾을 수없는 것 같습니다.

+0

VS2008 설명서에서 이에 대해 무엇을 말합니까? – Lazarus

+1

.sln 파일을 구문 분석 할 수 있습니까? 훨씬 쉬울 것 같아. –

+0

설명서가 이것이 작동해야한다고 주장한다. 그리고 .sln 파일을 직접 구문 분석하는 것을 피하고 싶다. 2005 코드가 무효화 될 것이기 때문에 (또한 새로운 구문 분석 문제를 일깨워 준다.) – SWeko

답변

1

Library for parsing Visual Studio Solution files? .sln을 직접 구문 분석하면 유일한 옵션으로 나타납니다.

현재 문제는 some other people have had your issue입니다. KB246018 says check out your antivirus as the leading cause (예는 단어이지만 VS에도 동일하게 적용됩니다). VS 디렉터리를 완전히 제외하십시오.

+0

도 바이러스 백신이 해제 된 상태에서 작동하지 않습니다. 그리고 시도한 경우 DTE2 _dte = (DTE2) Microsoft.VisualBasic.Interaction.CreateObject ("VisualStudio.DTE.9.0", ""); "ActiveX 구성 요소를 만들 수 없습니다."라는 메시지가 나타납니다. 오류. – SWeko

1

"서버가 사용 중입니다."라는 RPC 오류가 발생했습니다. Visual Studio가 실제로 사용 중이므로 콘솔 모드 프로그램을 디버깅하기 때문일 수 있습니다. Console.WriteLine() 문으로 디버깅을하다가 짧은 시간에 다른 디버거를 시도하십시오. Windows SDK에는 clrdbg.exe 및 mdbg.exe 디버거가 있습니다. .NET 2.0 SDK에는 GUI 디버거 iirc가 있습니다.

+0

아니, 디버깅을하지 않더라도 실패 ... 그리고, 네, 내 발목 잡아 당김을 당겨서 스스로 들어 올리려고합니다. – SWeko

+0

동일한 코드를 실행해도 문제가 없었습니다. 잘못된 참조를 추가하는 것 외에 다른 이유를 생각할 수 없습니다. 나는 envdte.dll을 VS2008 설치 디렉토리에서 사용했다. –