2010-12-12 12 views
2

wie hier erklärt http://davidhayden.com/blog/dave/archive/2005/11/05/2556.aspx kann man Projekt Artikel Vorlage anpassen.Projektelementvorlage: Wo gibt Visual Studio Abhängigkeiten an?

Aber im Moment versuche ich einfach zu verstehen, wie es funktioniert. Zum Beispiel entpackte ich die Usercontrol-Datei und in usercontrol.vstemplate kann ich nicht sehen, wie mycontrol.designer.cs auf mycontrol.cs abhängig ist, wie dies in der Projektdatei wie folgt aus:

<DependentUpon>mycontrol.cs</DependentUpon> 

so eine Idee?

Update: Könnte diese Abhängigkeit nicht irgendwo in der Projekttypvorlage angegeben werden? Dies wäre cleverer als die IDE-Heuristikregel, die ziemlich begrenzt ist, da sie nur Designer.cs und nicht beispielsweise .MyCustom.cs erkennen kann.

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> 

Antwort

1

Für Typen, die die IDE wie Windows kennt, sieht es sich automatisch aus.

Wenn Sie jedoch Dateien kombinieren möchten, die dem Designer nicht bekannt sind/ein anderes Benennungsmuster für die Dateien verwenden, müssen Sie Tags manuell hinzufügen. Ich habe das in einem Projekt ausprobiert und bin zu dem Schluss gekommen, dass es den Aufwand nicht wert ist, auch weil die IDE nur abhängige Dateien, die sie kennt, automatisch umbenennt (wenn Sie den Dateinamen der Hauptdatei ändern).

+0

Manuelles Hinzufügen von Tag derzeit das ist, was ich tue :( – user310291

+0

Ja, schien mir auch interessant. Aber ich umbenenne Dateien ziemlich oft (ich habe eine Klasse pro Datei und behalte die Namen gleich.) Ich musste das Projekt entladen, Referenzen ändern und dann das Projekt jedes Mal laden, wenn ich einen Klassennamen umstrukturierte. Es wurde schnell zu viel Arbeit, nur um einen schöneren Dateibaum zu bekommen. – Stefan

2

Die IDE ist intelligent genug, dies selbst herauszufinden. Versuchen Sie dies in einem Beispielprojekt: Projekt + Neues Element hinzufügen, Klasse, nannte es Foo.cs. Wiederholen Sie, jetzt nennen Sie es Foo.Designer.cs. Beachten Sie, dass es automatisch zu einem Unterpunkt von Foo.cs wird. Der ".Designer" Teil des Namens ist wichtig.

+0

Was ist, wenn ich .mycustom.cs möchte? Wenn ich mich nur auf IDE verlassen kann, stecke ich fest. Gibt es eine Möglichkeit, mit Projekttyp Vorlage oder etwas anderes zu spezifizieren? – user310291

+0

Nicht, dass ich bisher gefunden habe, aber es könnte eine dieser undokumentierten Funktionen sein – Stefan

Verwandte Themen