2010-12-12 5 views
2

여기에 설명 된대로 http://davidhayden.com/blog/dave/archive/2005/11/05/2556.aspx 하나는 프로젝트 항목 템플릿을 사용자 정의 할 수 있습니다.프로젝트 항목 템플릿 : Visual Studio는 종속성을 어디에 지정합니까?

하지만 지금은 어떻게 작동하는지 이해하려고합니다. 예를 들어 내가 UserControl을 파일의 압축을 해제하고 usercontrol.vstemplate에 나는이 같은 프로젝트 파일에 나타나는 mycontrol.designer.cs이 mycontrol.cs에 따라 달라집니다 볼 수 없습니다 그래서

<DependentUpon>mycontrol.cs</DependentUpon> 

어떤 생각?

업데이트 :이 종속성이 프로젝트 유형 템플릿의 어딘가에 지정되지 않았습니까? 이것은 IDE 휴리스틱 규칙에 의존하는 것보다 훨씬 영리합니다. 휴리스틱 규칙은 .MyCustom.cs가 아닌 .Designer.cs 만 인식 할 수 있기 때문에 다소 제한적입니다.

usercontrol.vstemplate :

<?xml version="1.0" encoding="utf-8"?> 
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> 
    <TemplateData> 
    <Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2295" /> 
    <Description Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2296" /> 
    <Icon Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4532" /> 
    <TemplateID>Microsoft.CSharp.WindowsFormsUserControl</TemplateID> 
    <ProjectType>CSharp</ProjectType> 
    <SortOrder>94</SortOrder> 
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion> 
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp> 
    <DefaultName>UserControl.cs</DefaultName> 
    </TemplateData> 
    <TemplateContent> 
    <References> 
    <Reference> 
    <Assembly>System</Assembly> 
    </Reference> 
    <Reference> 
    <Assembly>System.Data</Assembly> 
    </Reference> 
    <Reference> 
    <Assembly>System.Drawing</Assembly> 
    </Reference> 
    <Reference> 
    <Assembly>System.Windows.Forms</Assembly> 
    </Reference> 
    <Reference> 
    <Assembly>System.Xml</Assembly> 
    </Reference> 
    </References> 

    <ProjectItem ReplaceParameters="true" SubType="UserControl">UserControl.cs</ProjectItem> 
    <ProjectItem ReplaceParameters="true">UserControl.Designer.cs</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

답변

1

IDE의 경우 IDE는 Window와 같은 것을 자동으로 인식합니다.

그러나 디자이너에게 알려지지 않은 파일을 결합하거나 파일에 다른 이름 지정 패턴을 사용하려면 수동으로 태그를 추가해야합니다. 필자는 프로젝트에서이 작업을 시도했지만, IDE가 (주 파일의 파일 이름을 변경할 때) 알고있는 종속 파일의 이름을 자동으로 바꾸기 때문에 노력할 가치가 없다고 결론을 냈습니다.

+0

수동으로 태그를 수동으로 추가하고 있습니다. ( – user310291

+0

그래, 나에게도 흥미로 보였어.하지만 파일 이름을 꽤 자주 바꿉니다. 파일 당 하나의 클래스를 만들고 이름을 동일하게 유지하십시오.) 프로젝트를 언로드하고 참조를 변경 한 다음 클래스 이름을 리팩토링 할 때마다 프로젝트를로드해야했습니다. 더 예쁜 파일 트리를 얻는 데 너무 많은 시간이 걸렸습니다. – Stefan

2

IDE는 그 자체로이 알아낼 수있을만큼 똑똑하다. 샘플 프로젝트에서 이것을 시도하십시오 : Project + 새 항목 추가, Class, Foo.cs. 반복하십시오, 지금 Foo.Designer.cs이라고 지명하십시오. 자동으로 Foo.c의 하위 항목이되는 방식에 유의하십시오. 이름의 "디자이너"부분이 중요합니다.

+0

.mycustom.cs를 원하면 어떻게해야합니까? IDE에만 의존 할 수 있다면 나는 갇혀있다. 프로젝트 유형 템플릿 또는 다른 것을 지정하는 방법이 있습니까? – user310291

+0

지금까지 찾지 못했지만 문서화되지 않은 기능 중 하나가 될 수도 있습니다 – Stefan

관련 문제