2012-01-09 3 views
10

제 질문은 템플릿을 기반으로 이미 테스트를 완료하고 작동하는 템플릿을 기반으로 새 프로젝트를 만들고 싶지만 C# 코드로 작업하려고했을 때 두 가지 문제가 있습니다. mvc3 프로젝트). 내가 EnvDTE100this example을 시도했지만 개체가이 같은 행동이없는 Solution4하지 Solution2Solution4을 핸들 있기 때문에 작동하지 않기 때문에 EnvDTE80, EnvDTE90 and EnvDTE100의 차이점이다Visual Studio 프로젝트를 프로그래밍 방식으로 작성하십시오.

  1. .
  2. 어떻게 기본 경로를 사용하지 않고 프로젝트를 만들 수 있지만 특정 폴더 내가 여기 UPDATE

내가 DLL이 EnvDTE80

라고 사용하면 작동 코드의 필요가
System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.8.0"); 
    Object obj = System.Activator.CreateInstance(type, true); 
    EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)obj; 
    Solution2 _solution = (Solution2)dte.Solution; 
    string projectTemplatePath = @"C:\Documents and Settings\jmachado\Escritorio"; 
    projectTemplatePath =_solution.GetProjectTemplate("",""); <-- looking for some overload to create project based in a specific folder an not from '<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language.' 

하지만 난 EnvDTE100

,294,814,432를 사용한 경우

과 말의 DTE2가 EnvDTE100

+0

새 프로젝트마다 코드를 모두 복사하는 대신 하나의 소스를 사용할 수 있으므로 가상 디렉터리에 관련되는 것처럼 들리므로 모든 버그를 한 번에 해결할 수 있습니다 프로젝트). http://learn.iis.net/page.aspx/150/understanding-sites-applications-and-virtual-directories-on-iis/ – ThePower

+1

명확히하기 위해 실제로 달성하려는 내용의 몇 가지 예제 코드를 공유해 주실 수 있습니까? 너의 질문? –

+0

@Joachim Isaksson이 질문을 업데이 트하는 데 2 ​​분을 준다. – Jorge

답변

7

로드 EnvDTE80, EnvDTE90 및 EnvDTE100의 네임 스페이스의를 종료하지 않습니다 (10)는 상응 VS 8.0 (2005 년), 9.0 (2008 년)과 10.0 (2010) DTE 형식 라이브러리입니다.

VS2010 - DTE2가 최신 인 경우에만 두 개의 DTE 루트 개체 인터페이스가 있습니다. ProgID와는 "10.0"입니다

System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0"); 
Object obj = System.Activator.CreateInstance(type, true); 
EnvDTE8.DTE2 dte = (EnvDTE100.DTE2)obj; 

참고하지만, 변수 유형은 여전히 ​​EnvDTE8.DTE2입니다 : 그래서, VS 2010의 DTE 개체를 얻을, 당신이 할.

나머지는 거기에서 작동합니다. 필요할 경우 Solution4Solution2으로 전송할 수도 있습니다 (단 Solution4에 을 직접 입력해야 함).

+0

안녕하세요. 물어봐 줘서 고마워요. 지금도 제 두 번째 문제가 남아 있습니다. Visual Studio가 기본적으로 다른 특정 경로로 프로젝트를 만들려면 어떻게해야합니까 ?? – Jorge

+0

나는 요청을 이해하지 못한다. VS 템플릿 폴더에 복사하지 않은 커스텀 프로젝트 템플릿을 가지고 있다면,'GetProjectTemplate'을 사용하지 말고 템플릿에 대한 전체 경로를'AddFromTemplate'에 직접 전달하십시오. –

+0

거기에 VS2015가 있습니까? 아니면 DTE100 만 사용하고 계십니까? – tofutim

관련 문제