Udostępnij za pośrednictwem


Jak: Szablony projektów za pomocą kreatorów

Zapewnia Visual Studio IWizard interfejs , po wdrożeniu umożliwia uruchamianie kodu niestandardowego, kiedy użytkownik tworzy projekt od szablon.

Dostosowywanie szablon projektu może służyć do:

  • Wyświetlanie niestandardowego interfejsu użytkownika, która gromadzi dane wejściowe do parameterize szablon użytkownik .

  • Dodawanie wartości parametr , aby użyć szablon.

  • Dodać dodatkowe pliki do szablon.

  • Wykonać akcję, praktycznie wszystkie dozwolone przez Visual Studio w modelu obiekt automatyzacji w projekt.

IWizardMetody interfejs są nazywane w różnych momentach podczas tworzenia projekt , począwszy od razu po kliknięciu przez użytkownik OK na Nowy projektokno dialogowe. Każda metoda interfejs nosi nazwę do opisania punkt, w którym jest ona wywoływana.Na przykład Visual Studio wywołania RunStarted natychmiast po jego uruchomieniu do utworzyć projekt, dzięki czemu dobrym miejscem do napisać kod niestandardowy do gromadzenia danych wprowadzanych przez użytkownik .

Większość kodu napisać niestandardowy Wizards będzie używać DTE obiekt, który jest głównym obiekt w Visual Studio w modelu obiekt automatyzacji, aby dostosowywać projekt. Aby uzyskać więcej informacji o modelu obiekt automatyzacji, zobacz Rozszerzanie środowiska Visual Studio i Automatyzacja i rozszerzalność odniesienia.

Tworzenie Kreatora szablonów niestandardowych

W tym temacie opisano, jak utworzyć niestandardowe kreator , który otwiera formularz Windows przed rozpoczęciem projekt jest tworzony.formularz umożliwia użytkownik dodać wartość niestandardowego parametr , który zostanie następnie dodany do kodu źródłowego podczas tworzenia projekt .Główne kroki, z których każdy jest szczegółowo opisany w, są następujące:

Aby utworzyć niestandardowy szablon kreator

  1. Tworzenie zestaw , który implementuje IWizard interfejs.

  2. Instalowanie zestaw do globalna pamięć podręczna zestawów zestaw .

  3. Tworzenie projekt i używać Eksportuj szablonkreator , aby utworzyć szablon z projekt.

  4. Modyfikowanie szablon przez dodanie WizardExtension elementu w pliku .vstemplate, aby połączyć szablon zestaw , który implementuje IWizard.

  5. Tworzenie nowego projekt za pomocą niestandardowego kreator.

IWizard wykonawcze

Pierwszym krokiem w proces jest utworzyć zestaw , który implementuje IWizard.Używa tego zestaw RunStarted metoda wyświetlania formularza systemu Windows, który umożliwia użytkownik dodać wartość parametr , które będą używane podczas tworzenia projekt .

[!UWAGA]

W tym przykładzie użyto Visual C# do wprowadzenia w życie IWizard, chociaż można także użyć Visual Basic.

Aby zaimplementować IWizard

  1. Tworzenie nowegoprojekt biblioteka klas.

  2. Tworzenie klasy implementującej IWizard interfejs. Zobacz poniższy kod do Visual C# w pełni zaimplementowana przykład IWizard interfejs.

W tym przykładzie zawiera dwa pliki kodu: IWizardImplementation, klasy, która implementuje IWizard interfejsi UserInputForm, formularz systemu Windows dla danych wejściowych użytkownik .

ms185301.collapse_all(pl-pl,VS.110).gifKlasa IWizardImplementation

IWizardImplementation Klasa zawiera implementacje metoda dla każdego członka, z IWizard.W tym przykładzie tylko RunStarted metoda wykonuje zadanie. Inne metody nic nie rób lub return true.

RunStarted metoda przyjmuje się cztery parametry:

  • Object parametr można rzutować na korzeń_DTEobiekt, aby umożliwić dostosowywać projekt.

  • A Dictionary<TKey, TValue> parametr , który zawiera kolekcję wszystkich parametrów wstępnie zdefiniowane w szablon. Aby uzyskać więcej informacji dotyczących parametrów szablon , zobacz Parametry szablonu.

  • A WizardRunKind parametr , który zawiera informacje o rodzaj szablon jest używany.

  • Object Tablicy, która zawiera zestaw parametrów przekazany do kreator przez Visual Studio.

W tym przykładzie dodaje wartość parametr wejściowego użytkownik formularz do Dictionary<TKey, TValue> parametr. Każde wystąpienie $custommessage$ parametr w projekt zostaną zastąpione tekstu wprowadzonego przez użytkownik.

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;
        }        
    }
}

ms185301.collapse_all(pl-pl,VS.110).gifFormularz danych wejściowych użytkownika

Wejściowe użytkownik formularz zapewnia prosty formularz do wprowadzania niestandardowych parametr.formularz zawiera pole tekstowe o nazwie textBox1 i przycisk o nazwie button1.Po kliknięciu przycisku, tekst z pole tekstowe jest przechowywany w customMessage parametr.

Aby dodać formularz systemu Windows do rozwiązanie

  1. Na Projekt menu, kliknij przycisk Dodaj nowy element.

  2. Kliknij przycisk Windows Form, nazwa pliku UserInputForm.csi kliknij przycisk 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();
        }
    }
}

Instalowanie zestawu w pamięci podręcznej zestawów globalnych

zestaw wykonuje IWizard musi być podpisany przy użyciu nazwa silna i zainstalowane w globalna pamięć podręczna zestawów zestaw .

instalować zestaw do globalna pamięć podręczna zestawów zestaw

  1. Podpisać zestaw z nazwa silna.Aby uzyskać więcej informacji, zobacz Jak: podpisywanie zestaw o silnej nazwy lub Jak: podpisywanie zestawu (Visual Studio).

  2. Zainstaluj o silnej nazwie zestaw w globalna pamięć podręczna zestawów zestaw .Aby uzyskać więcej informacji, zobacz Jak: instalowania zestawów w pamięci podręcznej zestawów globalnych.

Tworzenie projektu do użycia jako szablonu

W tym przykładzie używanego jako szablon projekt jest aplikacji konsoli, która wyświetla komunikat określony w wejściowych użytkownik formularz niestandardowego kreator.

Aby utworzyć przykład projekt

  1. Utwórz nowy Visual C# konsoli aplikacji.

  2. W Main metoda stosowania, Dodaj następujący wiersz kodu.

    Console.WriteLine("$custommessage$");
    

    parametr $custommessage$ zastępuje się tekstem wpisane wejściowe użytkownik formularz podczas tworzenia projekt na podstawie szablon.

  3. Na pliku menu, kliknij przycisk Eksportuj szablon.

  4. W Eksportuj szablon kreator, kliknij przycisk Szablonu projektu, a następnie wybierz poprawny projekti kliknij przycisk Dalej.

  5. W Eksportuj szablon kreatorwprowadź opisowe informacje dotyczące tego szablon, wybierz automatycznie importować szablon do Visual Studio pole wyboru, a następnie kliknij przycisk Zakończenie.

    szablon pojawi się w Nowy projektokno dialogowe, ale nie są używane niestandardowe kreator.

W poniższym przykładzie plik pełny kod przed wywoził on do szablon.

using System;
using System.Collections.Generic;
using System.Text;

namespace TemplateProject
{
    class WriteMessage
    {
        static void Main(string[] args)
        {
            Console.WriteLine("$custommessage$");
        }
    }
}

Modyfikowanie szablonu

Teraz, że szablon jest tworzony i wyświetlany w Nowy projektokno dialogowe, należy zmodyfikować go tak, aby korzystała z zestaw utworzony w poprzednich krokach.

Aby dodać niestandardowe kreator do szablon

  1. Zlokalizuj plik .zip zawierający szablon.

    1. Na Narzędzia menu, kliknij przycisk Opcje.

    2. Kliknij przycisk projektów i roztwory.

    3. Read Lokalizacja szablonówprojekt użytkownik Visual Studio pole tekstowe.

    Domyślnie ta lokalizacja jest mój Documents\Visual Studio wersji\Templates\ProjectTemplates.

  2. Wyodrębnij plik .zip.

  3. Otwórz plik .vstemplate w Visual Studio.

  4. Po TemplateContent element, dodać Element WizardExtension (Visual Studio szablonów) elementu nazwa silna użytkownika niestandardowego kreatorzestaw. Aby uzyskać więcej informacji o znajdowaniu nazwa silna użytkownika zestaw, zobacz Jak: wyświetlanie zawartości pamięci podręcznej zestawów globalnychi Jak: odwołać zestawu o nazwie Strong.

    W poniższym przykładzie WizardExtension element.

    <WizardExtension>
        <Assembly>CustomWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=fa3902f409bb6a3b</Assembly>
        <FullClassName>CustomWizard.IWizardImplementation</FullClassName>
    </WizardExtension>
    

Za pomocą Kreatora niestandardowe

Teraz można utworzyć projekt z szablon i użyć niestandardowego kreator.

Aby użyć niestandardowego kreator

  1. Na pliku menu, kliknij przycisk Nowy projekt.

  2. W Nowy projekt okno dialogowe, zlokalizuj szablon, wpisz nazwę i kliknij przycisk OK.

    Wejścioweużytkownik kreator formularz jest otwierany.

  3. Wpisz wartości dla niestandardowego parametr i kliknij przycisk.

    Wejścioweużytkownik formularz kreatorzostanie zamknięty, a projekt został utworzony na podstawie szablon.

  4. W Solution Explorer, kliknij prawym przyciskiem myszy plik kodu źródłowego i kliknij przycisk Widok Kod.

    Warto zauważyć, że $custommessage$ Zamieniono tekst wprowadzony w wejściowych formularzużytkownik kreator.

Zobacz też

Informacje

Element WizardExtension (Visual Studio szablonów)

IWizard

Inne zasoby

Dostosowywanie projektu i szablony zapasów