Sdílet prostřednictvím


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 parametru k použití v šabloně.

  • Přidejte další soubory do šablony.

  • Provést téměř jakoukoli akci povolenou modelem automatizačních objektů Visual Studio na projektu.

Metody rozhraní IWizard jsou volány v různých časech během vytváření projektu, počínaje tím, jak 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 automatizačních objektů Visual Studio, k přizpůsobení projektu.Další informace o modelu automatizačních objektů naleznete v tématech Rozšiřování prostředí Visual Studio a Referenční dokumentace automatizace a rozšíření.

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ření vlastního průvodce šablony

  1. Vytvořte sestavení, které implementuje rozhraní IWizard.

  2. Nainstalujte sestavení do globální mezipaměti sestavení.

  3. Vytvořte projekt a použijte průvodce Exportovat šablonu k vytvoření šablony z projektu.

  4. Upravte šablonu přidáním elementu WizardExtension do souboru .vstemplate, kterým chcete propojit šablonu a sestavení, které implementuje IWizard.

  5. 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řidat 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

  1. Vytvořte nový projekt knihovny tříd.

  2. Vytvořte třídu, která implementuje rozhraní IWizard.Viz 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 rozhraní, a UserInputForm, formulář Windows pro uživatelský vstup.

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, 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.Každá instance parametru $custommessage$ v projektu bude nahrazena textem zadaným uživatelem.Do projektu musíte přidat následující sestavení:

  1. EnvDTE.dll

  2. Microsoft.VisualStudio.TemplateWizardInterface.dll

  3. System.Windows.Forms.dll

Důležitá poznámkaDůležité

UserInputForm použitý v tomto příkladu je definován v následující části.

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í

  • Přidejte následující kód do souboru, který obsahuje implementaci průvodce.
public partial class UserInputForm : Form
{
    private string customMessage;
    private TextBox textBox1;

    public UserInputForm()
    { 
        textBox1 = new TextBox();
        this.Controls.Add(textBox1);
    }

    public string get_CustomMessage()
    {
        return customMessage;
    }

    private void textBox1_TextChanged(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).

Instalace sestavení do globální mezipaměti sestavení (GAC)

  1. Podepište sestavení silným názvem.Další informace naleznete v tématech Postupy: Podepsání sestavení silným názvem a Jak: podepsat sestavení (Visual Studio).

  2. Nainstalujte sestavení se silným názvem do globální mezipaměti sestavení (GAC).Další informace naleznete v tématu Postupy: Instalace 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

  1. Vytvořte novou konzolovou aplikaci Visual C#.

  2. 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.

  3. V nabídce Soubor klepněte na příkaz Exportovat šablonu.

  4. V průvodci Exportovat šablonu klikněte na tlačítko Šablona projektu, vyberte správný projekt a klikněte na tlačítko Další.

  5. 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

  1. Nalezněte .zip soubor, který obsahuje šablonu.

    1. V nabídce Nástroje klikněte na příkaz Možnosti.

    2. Klikněte na tlačítko Projekty a řešení.

    3. Přečtěte si textové pole Umístění šablon projektů uživatele sady Visual Studio.

    Ve výchozím nastavení je toto umístění My Documents\Visual Studio Version\Templates\ProjectTemplates.

  2. Extrahujte .zip soubor.

  3. Otevřete soubor .vstemplate v Visual Studio.

  4. Za element TemplateContent přidejte element WizardExtension – element (šablony sady Visual Studio) se silným názvem vašeho vlastního průvodce sestavením.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ía Postupy: Odkazování na sestavení se silným názvem.

    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

  1. V nabídce Soubor klepněte na příkaz Nový Projekt.

  2. 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.

  3. 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.

  4. 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é

Referenční dokumentace

WizardExtension – element (šablony sady Visual Studio)

IWizard

Další zdroje

Přizpůsobení šablon projektů a položek