2009-04-14 2 views
1

자동화 된 프로세스로 공통 라이브러리 및 프로젝트를 포함하도록 기본 응용 프로그램을 작성하고 모든 것을 소스 제어로 확인하고 솔루션의 기본 빌드를 설정합니다. 내가 제외한 문제의 대부분은 하나를 제외하고 해결했습니다. 솔루션 및 프로젝트에 대한 사용자 지정 경로를 가로 채고 해당 경로를 변경할 수 있습니까?Visual Studio - 솔루션 및 프로젝트 생성시 가로 채기 및 변경

다른 말로하면.

사용자는 새 프로젝트 작성 화면에서 C :/Projects/App1을 제공합니다. 솔루션 및 프로젝트는 실제로 C :/Projects/App1/trunk/source/App1에 저장됩니다.

경로를 변경하여 TFS가 연속 빌드를 설정하는 방법을 용이하게합니다. 나는 이것을 제외하고는 대부분의 다른 문제를 해결했으며 이것이 가장 단순한 것처럼 보입니다. 나는 IWizard 클래스 내에서 그것을 바꿀 수 있는지 보려고했지만, 지금까지는 행운이 없다. 어떤 제안이라도 대단히 감사하겠습니다.

이 프로세스는 사용자가 사용자 지정 템플릿을 선택하여 트리거됨을 추가해야합니다. 사용자 지정 서식 파일을 사용하여 응답이 없으면 VS 추가 기능으로 전환합니다.

-Scott
+0

나는이 일을 할 수있는 방법을 모르고 있지만, 실제로 성공하면 많은 개발자를 화나게 할 것이라고 말할 것입니다. 내가 아는 대부분의 개발자는 코드 작성 방법에 대해 매우 특별하며, 그 중 어느 것도 동일하지 않습니다. TFS는 다른 작업 디렉토리를 지원하지 않습니까? – Todd

+0

예 TFS는 다른 작업 디렉터리를 지원합니다. 문제는 외부 프로젝트, 260 경로 숯 제한 등을 참조 할 때 발생합니다 ... 자동화 된 빌드로 인해 발생하는 모든 종류의 문제. 서로 다른 개발자가 서로 다른 방식을 설정하면 연속 빌드를 중단시킬 수 있습니다. – Bomlin

답변

0

내가 뭘하고 있는지 잘 모르겠지만 프로젝트 템플릿으로는 가능합니다. 비록 이것이 귀하의 경우에 적용되는지 확실하지 않습니다.

추가 :이 같은 뭔가 :

<TemplateContent> 
    <Project> 
     <Folder> 
      <Folder> 
       <ProjectItem></ProjectItem 
      </Folder> 
     </Folder> 
    </Project> 
</TemplateContent> 
+0

내 게시물을 좀 더 자세하게 수정했습니다. IWizard를 구현하는 사용자 지정 클래스를 사용하는 사용자 지정 서식 파일을 사용하고 있습니다. IWizard를 사용하여 다른 작업을 할 수 있습니다. 저장 디렉터리를 변경할 수 있는지 잘 모르겠습니다. – Bomlin

+0

템플릿 설명자 XML은 템플릿 파일을 복사해야하는 모든 폴더를 지정합니다. 그냥 거기에 추가하지 않는 이유는 무엇입니까? –

+0

이것은 프로젝트 내의 폴더 구조를 제어하기 때문입니다. 솔루션 레벨에서 폴더 구조를 변경해야합니다. 이것은 다중 프로젝트 템플릿입니다. – Bomlin

1

당신은 Guidance Automation Toolkit 들여다 놈이야. 무엇보다도, 당신이 언급 한 모든 것을 할 수있는 솔루션 템플릿 등을 만들 수 있습니다. 사용자에게 마법사 UI를 제공하여 솔루션을 사용자 정의 할 수있는 옵션을 묻는 프로젝트 및 파일 참조를 포함시킬 수 있습니다. 모든 종류의 프로젝트 설정을 구성 할 수 있습니다. 표준을 시행하십시오.

Service Factory에 정교한 GAT의 예를 볼 수 있습니다. http://social.msdn.microsoft.com/forums/en-US/vsgatk/threads/에는 GAT 포럼도 있습니다.

GAT는 Visual Studio Extensibility를 사용하여 실제로 작업을 완료하는 좋은 방법입니다.

1

좀 더 살펴보면 솔루션이 아닌 프로젝트의 폴더 구조가 이미 만들어 질 때까지 IWizard 인터페이스가 호출되지 않는다는 것을 발견했습니다. 진전이 필요하기 때문에 필자는 순전히 템플릿이 적용된 프로세스 대신 Visual Studio의 추가 기능으로 전환하기로 결정했습니다.

저는 솔루션을 프로그래밍 방식으로 작성한 다음 템플릿 솔루션 프로젝트에 솔루션을 추가하는 데 훨씬 많은 행운이있었습니다. 나는이 문제를 해결할 수 있었다. 나는 약간의 코드를 잘라 냈다. 그러나 이것은 기본적인 아이디어를 준다.

System.Type vsType = System.Type.GetTypeFromProgID ("VisualStudio.DTE.9.0"); DTE2 vs = (DTE2) System.Activator.CreateInstance (vsType, true);

soln = (Solution2) vs.Solution;

soln.Create (PathProjectRoot, SolutionName);

soln.SaveAs (SolutionName);

제안에 감사드립니다.

+0

FYI, 이것은 GAT로 수행 할 수있는 일종의 일이지만 더 많은 일을 할 수 있습니다. 사용자는 솔루션 이름, 프로젝트, 팀 또는 기타 사항을 묻는 "레서피"를 실행할 수 있으며, 솔루션은 소스 트리의 정확한 위치, 올바른 참조 등으로 구축 될 수 있습니다. –

관련 문제