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
Tworzenie zestaw , który implementuje IWizard interfejs.
Instalowanie zestaw do globalna pamięć podręczna zestawów zestaw .
Tworzenie projekt i używać Eksportuj szablonkreator , aby utworzyć szablon z projekt.
Modyfikowanie szablon przez dodanie WizardExtension elementu w pliku .vstemplate, aby połączyć szablon zestaw , który implementuje IWizard.
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
Tworzenie nowegoprojekt biblioteka klas.
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 .
Klasa 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;
}
}
}
Formularz 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
Na Projekt menu, kliknij przycisk Dodaj nowy element.
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
Podpisać zestaw z nazwa silna.Aby uzyskać więcej informacji, zobacz Jak: podpisywanie zestaw o silnej nazwy lub Jak: podpisywanie zestawu (Visual Studio).
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
Utwórz nowy Visual C# konsoli aplikacji.
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.
Na pliku menu, kliknij przycisk Eksportuj szablon.
W Eksportuj szablon kreator, kliknij przycisk Szablonu projektu, a następnie wybierz poprawny projekti kliknij przycisk Dalej.
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
Zlokalizuj plik .zip zawierający szablon.
Na Narzędzia menu, kliknij przycisk Opcje.
Kliknij przycisk projektów i roztwory.
Read Lokalizacja szablonówprojekt użytkownik Visual Studio pole tekstowe.
Domyślnie ta lokalizacja jest mój Documents\Visual Studio wersji\Templates\ProjectTemplates.
Wyodrębnij plik .zip.
Otwórz plik .vstemplate w Visual Studio.
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
Na pliku menu, kliknij przycisk Nowy projekt.
W Nowy projekt okno dialogowe, zlokalizuj szablon, wpisz nazwę i kliknij przycisk OK.
Wejścioweużytkownik kreator formularz jest otwierany.
Wpisz wartości dla niestandardowego parametr i kliknij przycisk.
Wejścioweużytkownik formularz kreatorzostanie zamknięty, a projekt został utworzony na podstawie szablon.
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)