Postupy: Použití Průvodců se šablonami projektů
Visual Studio poskytuje rozhraní IWizard, které když je implementováno umožňuje spustit vlastní kód, když uživatel vytvoří projekt ze šablony.
Přizpůsobení šablony projektu lze použít k:
Zobrazit vlastní uživatelské rozhraní shromažďující uživatelský vstup k parametrizaci šablony.
Přidat hodnoty pro parametr k použití v šabloně.
Přidat další soubory do šablony.
Provést téměř jakoukoli akci povolenou modelem objektu automatizace Visual Studio na projektu.
Metody rozhraní IWizard jsou volány v různých časech během vytváření projektu, počínaje tím, jakmile uživatel klikne na tlačítko OK v dialogovém okně Nový projekt. Každá metoda rozhraní je pojmenována k popsání bodu, ve kterém je volána. Například Visual Studio volá RunStarted okamžitě při spuštění vytváření projektu, takže vytváří správné umístění pro zápis vlastního kódu ke shromažďování vstupu uživatele.
Většinu kódu, který napíšete pro vlastní průvodce, použije objekt DTE, který je hlavním objektem v modelu objektů automatizace Visual Studio k přizpůsobení projektu. Další informace o modelu objektu automatizace naleznete Extending the Visual Studio Environment a Automation and Extensibility Reference.
Vytváření vlastního průvodce šablony
Toto téma ukazuje, jak vytvořit vlastního průvodce, který otevře formulář Windows před vytvořením projektu. Formulář umožňuje uživateli přidat vlastní hodnotu parametru, která bude poté přidána ke zdrojovému kódu během vytváření projektu. Následuje přehled hlavních kroků, z nichž každý je podrobně vysvětlen.
Vytvořit vlastního průvodce šablony
Vytvořte sestavení, které implementuje rozhraní IWizard.
Nainstalujte sestavení do globální mezipaměti sestavení (GAC).
Vytvořte projekt a použijte průvodce Exportovat šablonu k vytvoření šablony z projektu.
Upravte šablonu přidáním elementu WizardExtension v souboru .vstemplate, kterým chcete propojit šablonu a sestavení, které implementuje IWizard.
Vytvořit nový projekt pomocí vlastního průvodce.
Implementace IWizard
Prvním krokem v procesu je vytvořit sestavení, které implementuje IWizard. Toto sestavení používá metodu RunStarted k zobrazení formuláře Windows, který umožňuje uživateli přidávat vlastní hodnotu parametru, která bude použita při vytváření projektu.
Poznámka
Tento příklad používá Visual C# k implementaci IWizard, přestože také můžete použít Visual Basic.
Implementovat IWizard
Vytvořte nový projekt knihovny tříd.
Vytvořte třídu, která implementuje rozhraní IWizard. Podívejte se na kód uvedený níže pro příklad Visual C# plně implementovaného rozhraní IWizard.
Tento příklad obsahuje dva soubory kódu: IWizardImplementation třídu, která implementuje rozhraní IWizard a formulář Windows UserInputForm pro vstup uživatele.
Třída IWizardImplementation
Třída IWizardImplementation obsahuje implementace metody pro každého člena IWizard. V tomto příkladu pouze metoda RunStarted provede úlohu. Všechny další metody neprovádějí žádnou akci nebo vrátí true.
Metoda RunStarted přijímá čtyři parametry:
Parametr Object, který může být převeden na kořenový objekt _DTE, který umožňuje přizpůsobit projekt.
Parametr Dictionary<TKey, TValue>, který obsahuje kolekci všech předem definovaných parametrů v šabloně. Další informace o parametrech šablon naleznete v tématu Parametry šablony.
Parametr WizardRunKind, který obsahuje informace o tom, jaký druh šablony je používán.
Pole Object obsahující sadu parametrů předaných průvodci pomocí Visual Studio.
Tento příklad přidá hodnotu parametru ze vstupního formuláře uživatele do parametru Dictionary<TKey, TValue>. Každá instance parametru $custommessage$ v projektu bude nahrazena textem zadaným uživatelem.
using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TemplateWizard;
using System.Windows.Forms;
using EnvDTE;
namespace CustomWizard
{
public class IWizardImplementation:IWizard
{
private UserInputForm inputForm;
private string customMessage;
// This method is called before opening any item that
// has the OpenInEditor attribute.
public void BeforeOpeningFile(ProjectItem projectItem)
{
}
public void ProjectFinishedGenerating(Project project)
{
}
// This method is only called for item templates,
// not for project templates.
public void ProjectItemFinishedGenerating(ProjectItem
projectItem)
{
}
// This method is called after the project is created.
public void RunFinished()
{
}
public void RunStarted(object automationObject,
Dictionary<string, string> replacementsDictionary,
WizardRunKind runKind, object[] customParams)
{
try
{
// Display a form to the user. The form collects
// input for the custom message.
inputForm = new UserInputForm();
inputForm.ShowDialog();
customMessage = inputForm.get_CustomMessage();
// Add custom parameters.
replacementsDictionary.Add("$custommessage$",
customMessage);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// This method is only called for item templates,
// not for project templates.
public bool ShouldAddProjectItem(string filePath)
{
return true;
}
}
}
Formulář vstupu uživatele
Formulář vstupu uživatele poskytuje jednoduchý formulář pro zadávání vlastního parametru. Formulář obsahuje textové pole s názvem textBox1 a tlačítko s názvem button1. Při kliknutí na tlačítko je text z textového pole uložen do parametru customMessage.
Přidat formulář Windows do řešení
V nabídce Project (Projekt) klepněte na příkaz Add New Item (Přidat novou položku).
Klikněte na tlačítko Formulář Windows, nazvěte soubor UserInputForm.cs a klikněte na tlačítko OK.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace CustomWizard
{
public partial class UserInputForm : Form
{
private string customMessage;
public UserInputForm()
{
InitializeComponent();
}
public string get_CustomMessage()
{
return customMessage;
}
private void button1_Click(object sender, EventArgs e)
{
customMessage = textBox1.Text;
this.Dispose();
}
}
}
Instalace sestavení do globální mezipaměti sestavení (GAC)
Sestavení, které implementuje IWizard, musí být podepsáno pomocí silného názvu a nainstalováno do globální mezipaměti sestavení (GAC).
Nainstalovat sestavení do globální mezipaměti sestavení (GAC)
Podepište sestavení silným názvem. Další informace naleznete v tématech Jak: Podepsat sestavení silným názvem a Postupy: Podepsat sestavení (Visual Studio).
Nainstalujte sestavení se silným názvem do globální mezipaměti sestavení (GAC). Další informace naleznete v tématu Postupy: Instalece sestavení do globální mezipaměti sestavení.
Vytváření projektu k použití jako šablona
V tomto příkladu projekt použit jako šablona je konzolová aplikace, která zobrazí zprávu určenou ve formuláři vstupu uživatele vlastního průvodce.
Vytvořit příklad projektu
Vytvořte novou konzolovou aplikaci Visual C#.
V metodě Main aplikace přidejte následující řádek kódu.
Console.WriteLine("$custommessage$");
Parametr $custommessage$ je nahrazen textem zadaným ve formuláři vstupu uživatele při vytvoření projektu z šablony.
V nabídce Soubor klikněte na příkaz Exportovat šablonu.
V průvodci Exportovat šablonu klikněte na tlačítko Šablona projektu, vyberte správný projekt a klikněte na tlačítko Další.
V průvodci Exportovat šablonu zadejte popisné informace o šabloně, vyberte zaškrtávací políčko Automaticky importovat šablonu do sady Visual Studio a klikněte na tlačítko Dokončit.
Šablona se nyní zobrazí v dialogovém okně Nový projekt, ale nepoužívá vlastního průvodce.
Následující příklad ukazuje soubor s úplným kódem dříve, než byl exportován do šablony.
using System;
using System.Collections.Generic;
using System.Text;
namespace TemplateProject
{
class WriteMessage
{
static void Main(string[] args)
{
Console.WriteLine("$custommessage$");
}
}
}
Úprava šablony
Nyní, když je šablona vytvořena a zobrazí se v dialogovém okně Nový projekt, je třeba upravit ji tak, aby používala sestavení, které jste vytvořili v předchozích krocích.
Přidat vlastního průvodce do šablony
Nalezněte .zip soubor, který obsahuje šablonu.
V nabídce Nástroje klepněte na příkaz Možnosti.
Klikněte na tlačítko Projekty a řešení.
Přečtěte textové pole Umístění šablon projektů uživatele sady Visual Studio. Další informace naleznete v tématu Obecné, projekty a řešení, dialogové okno Možnosti.
Ve výchozím nastavení je toto umístění My Documents\Visual Studio 2010\Templates\ProjectTemplates.
Extrahujte .zip soubor.
Otevřete soubor .vstemplate v Visual Studio.
Po elementu TemplateContent přidejte element element WizardExtension (Visual Studio šablony) se silným názvem sestavení vašeho vlastního průvodce. Další informace o zjištění silného názvu vašeho sestavení naleznete v tématu Postupy: Zobrazení obsahu globální mezipaměti sestavení (GAC)a Jak: Odkazovat silně pojmenované sestavení.
Následující příklad ukazuje element WizardExtension.
<WizardExtension> <Assembly>CustomWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=fa3902f409bb6a3b</Assembly> <FullClassName>CustomWizard.IWizardImplementation</FullClassName> </WizardExtension>
Použití vlastního průvodce
Nyní můžete vytvořit projekt z vaší šablony a použít vlastního průvodce.
Použít vlastního průvodce
V nabídce Soubor klikněte na Nový Projekt.
V dialogovém okně Nový projekt nalezněte vaši šablonu, zadejte název a klikněte na tlačítko OK.
Otevře se formulář průvodce vstupu uživatele.
Zadejte hodnotu pro vlastní parametr a klikněte na tlačítko.
Formulář průvodce vstupu uživatele se zavře a projekt je vytvořen z šablony.
V Průzkumníku řešení klikněte pravým tlačítkem myši na zdrojový soubor kódu a klikněte na příkaz Zobrazit kód.
Všimněte si, že $custommessage$ byla nahrazena textem zadaným ve formuláři průvodce vstupu uživatele.
Viz také
Odkaz
element WizardExtension (Visual Studio šablony)