2011-07-26 4 views
2

VS2010 솔루션을 만들고 독립 실행 형 응용 프로그램 (추가 기능 아님)에서 프로젝트를 추가하려고합니다. VS2010의 인스턴스를 만들 수는 있지만 프로젝트를 올바르게 만드는 방법을 결정할 수 없습니다 ... EnvDTE80 개체를 사용하여 프로젝트를 만드는 방법의 예는 찾을 수 있습니다.이 개체는 나중에 프로젝트 파일이 이전 형식이므로 업그레이드해야합니다. 나는이있다 : 내가 무엇을 찾고 있어요 것은 "EnvDTE100.DTE2"같은의 동등하지만 거기에 도착하는 방법을 모른다"VisualStudio.DTE.10.0"을 사용하여 솔루션을 만들고 프로젝트를 추가하십시오.

EnvDTE80.DTE2 dte2; 
object obj; 
System.Type t; 
t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true); 
obj = System.Activator.CreateInstance(t, true); 
dte2 = (EnvDTE80.DTE2)obj; 

.

덕분에

+0

전체 소스 코드가 포함 된 최종 해결책은 무엇입니까? – Kiquenet

답변

1

난 내가 VS2010에서 만든 템플릿에서 솔루션로드 두 개의 프로젝트를 생성하는 응용 프로그램이, 내가 비슷한 일을하고 있어요 생각합니다. 당신은 모든에도 여전히 VS2010에서로드 EnvDTE80, 사용 보인다에서 맞아,하지만 우리는 2010 솔루션을 만드는 데 사용 :

System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0"); 
Object obj = System.Activator.CreateInstance(type, true); 
EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)obj; 
EnvDTE100.Solution4 soln = (EnvDTE100.Solution4)dte2.Solution; 

그런 다음 프로젝트를 만들 수 SOLN 객체의 메소드를 호출 할 수 있습니다 (내 경우 AddFromTemplate).

4

DTE 개체를 사용할 필요가 없습니다. 객체 솔루션 4에 대한 치료는 다릅니다.

Type latestSolution = Type.GetTypeFromProgID("VisualStudio.10.0", true); 
EnvDTE100.Solution4 vsSolution = (EnvDTE100.Solution4)Activator.CreateInstance(latestSolution, true);