Nastavení vlastního procesoru direktiv
Chcete-li v sadě Visual Studio použít v libovolném počítači vlastní procesor direktiv, musíte ho zaregistrovat pomocí jedné z metod popsaných v tomto tématu.
Alternativní metody jsou následující:
Visual Studio Extension (VSIX):Tato metoda poskytuje způsob, jak nainstalovat a odinstalovat procesor direktiv ve vašem vlastním počítači i v jiných počítačích.Zpravidla můžete do stejného rozšíření VSIX zabalit jiné funkce.
VSPackage:Pokud definujete VSPackage obsahující kromě procesoru direktiv i jiné funkce, lze procesor direktiv pohodlně zaregistrovat.
Nastavení klíče registru:Pomocí této metody přidáte položku registru pro procesor direktiv.
Jednu z těchto metod je nutné použít pouze v případě, že chcete transformovat textovou šablonu v sadě Visual Studio nebo nástroji MSBuild.Pokud ve své aplikaci používáte vlastního hostitele, je tento vlastní hostitel odpovědný za vyhledání procesoru direktiv pro jednotlivé direktivy.
Nasazení procesoru direktiv v rozšíření VSIX
Do rozšíření Visual Studio Extension (VSIX) můžete přidat vlastní procesor direktiv.
Přitom musíte zajistit, aby v souboru .vsix byly obsaženy následující dvě položky:
Sestavení (.dll), které obsahuje třídu vlastního procesoru direktiv
Soubor .pkgdef, který registruje procesor direktivKořenový název tohoto souboru musí být stejný jako sestavení.Soubory mohou mít například název CDP.dll a CDP.pkgdef.
Chcete-li zkontrolovat nebo změnit obsah souboru .vsix, změňte jeho příponu na .zip a pak jej otevřete.Po úpravě obsahu změňte příponu souboru zpět na .vsix.
Soubor .vsix lze vytvořit několika způsoby.Jednu metodu popisuje následující postup.
Vývoj vlastního procesoru direktiv v projektu VSIX
Vytvořte projekt VSIX v sadě Visual Studio.
- V dialogovém okně Nový projekt rozbalte položku Visual Basic nebo Visual C# a potom rozbalte položku Rozšiřitelnost.Klikněte na položku Projekt VSIX.
V source.extension.vsixmanifest nastavte typ obsahu a podporované edice.
V editoru manifestu VSIX vyberte na kartě Prostředky položku Nový a nastavte vlastnosti nové položky:
Typ obsahu = VSPackage
Zdrojový projekt = <the current project>
Klikněte na položku Vybrané edice a zaškrtněte typy instalace, ve kterých má být procesor direktiv použitelný.
Přidejte soubor .pkgdef a nastavte jeho vlastnosti, které mají být zahrnuty do rozšíření VSIX.
Vytvořte textový soubor s názvem <assemblyName>.pkgdef.
<assemblyName> se obvykle shoduje s názvem projektu.
V Průzkumníku řešení ho vyberte a následujícím způsobem nastavte jeho vlastnosti:
Akce sestavení = Obsah
Kopírovat do výstupního adresáře = Kopírovat vždy
Zahrnout do VSIX = True
Nastavte název rozšíření VSIX a ujistěte se, že je ID jedinečné.
Do souboru .pkgdef přidejte následující text.
[$RootKey$\TextTemplating] [$RootKey$\TextTemplating\DirectiveProcessors] [$RootKey$\TextTemplating\DirectiveProcessors\ CustomDirectiveProcessorName] @="Custom Directive Processor description" "Class"="NamespaceName.ClassName" "CodeBase"="$PackageFolder$\AssemblyName.dll"
Následující názvy nahraďte vlastními názvy: CustomDirectiveProcessorName, NamespaceName, ClassName, AssemblyName.
Přidejte do projektu následující odkazy:
Microsoft.VisualStudio.TextTemplating.*.0
Microsoft.VisualStudio.TextTemplating.Interfaces.*.0
Microsoft.VisualStudio.TextTemplating.VSHost.*.0
Přidejte do projektu třídu vlastního procesoru direktiv.
Jedná se o veřejnou třídu, která by měla implementovat DirectiveProcessor nebo RequiresProvidesDirectiveProcessor.
Instalace vlastního procesoru direktiv
V Průzkumníku Windows (v Průzkumníku souborů ve Windows 8) otevřete adresář sestavení (obvykle bin\Debug nebo bin\Release).
Pokud chcete procesor direktiv nainstalovat do jiného počítače, zkopírujte soubor .vsix do tohoto počítače.
Dvakrát klikněte na soubor .vsix.Zobrazí se instalační služba rozšíření sady Visual Studio.
Restartujte Visual Studio.Nyní budete moci spouštět textové šablony obsahující direktivy, které odkazují na vlastní procesor direktiv.Jednotlivé direktivy mají tento formát:
<#@ CustomDirective Processor="CustomDirectiveProcessorName" parameter1="value1" … #>
Odinstalace nebo dočasné vypnutí vlastního procesoru direktiv
V nabídce Nástroje sady Visual Studio klikněte na příkaz Správce rozšíření.
Vyberte rozšíření VSIX, které obsahuje procesor direktiv, a klikněte na možnost Odinstalovat nebo Zakázat.
Řešení potíží s procesorem direktiv v rozšíření VSIX
Pokud procesor direktiv nefunguje, mohou vám pomoci následující návrhy:
Název procesoru, který zadáte do vlastní direktivy, se musí shodovat s parametrem CustomDirectiveProcessorName zadaným v souboru .pkgdef.
Metoda IsDirectiveSupported musí vrátit true, pokud je jí předán název CustomDirective.
Pokud ve Správci rozšíření toto rozšíření nevidíte, ale systém vám ho neumožní nainstalovat, odstraňte toto rozšíření ze složky %localappdata%\Microsoft\VisualStudio\*.0\Extensions\.
Otevřete soubor .vsix a zkontrolujte jeho obsah.Chcete-li jej otevřít, změňte jeho příponu na .zip.Ověřte, zda obsahuje soubory .dll, .pkgdef a extension.vsixmanifest.Soubor extension.vsixmanifest by měl obsahovat příslušný seznam v uzlu SupportedProducts a měl by také obsahovat uzel VsPackage pod uzlem Content:
<Content>
<VsPackage>CustomDirectiveProcessor.dll</VsPackage>
</Content>
Nasazení procesoru direktiv v sadě VSPackage
Pokud je procesor direktiv součástí sady VSPackage, která se bude instalovat do mezipaměti GAC, můžete systém nechat vygenerovat soubor .pkgdef za vás.
Vložte do třídy balíčku následující atribut:
[ProvideDirectiveProcessor(typeof(DirectiveProcessorClass), "DirectiveProcessorName", "Directive processor description.")]
[!POZNÁMKA]
Tento atribut je umístěn ve třídě balíčku, nikoli ve třídě procesoru direktiv.
Soubor .pkgdef se vygeneruje při sestavení projektu.Při instalaci sady VSPackage zaregistruje soubor .pkgdef procesor direktiv.
Ověřte, zda je soubor .pkgdef ve složce sestavení, obvykle bin\Debug nebo bin\Release.Pokud tam není, otevřete soubor .csproj v textovém editoru a odeberte následující uzel: <GeneratePkgDefFile>false</GeneratePkgDefFile>.
Další informace naleznete v tématu VSPackages.
Nastavení klíče registru
Tato metoda instalace vlastního procesoru direktiv se příliš nedoporučuje.Neposkytuje totiž pohodlný způsob zapnutí a vypnutí procesoru direktiv ani způsob distribuce procesoru direktiv jiným uživatelům.
Upozornění |
---|
Nesprávná úprava registru může vážně poškodit systém.Před prováděním změn registru nezapomeňte vytvořit zálohu všech cenných dat v počítači. |
Registrace procesoru direktiv nastavením klíče registru
Spusťte program regedit.
V editoru registru přejděte na
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\*.0\TextTemplating\DirectiveProcessors
Pokud chcete nainstalovat procesor direktiv v experimentální verzi sady Visual Studio, vložte za "11.0" text "Exp".
Přidejte klíč registru, který má stejný název jako třída procesoru direktiv.
- Ve stromové struktuře registru klikněte pravým tlačítkem na uzel DirectiveProcessors, přejděte na příkaz Nový a potom klikněte na příkaz Klíč.
V novém uzlu přidejte podle následujících tabulek řetězcové hodnoty Class a CodeBase nebo Assembly.
Klikněte pravým tlačítkem na uzel, který jste vytvořili, přejděte na příkaz Nový a klikněte na příkaz Řetězcová hodnota.
Upravte název hodnoty.
Dvakrát klikněte na název a upravte data.
Pokud vlastní procesor direktiv není v mezipaměti GAC, měly by podklíče registru vypadat podle následující tabulky:
Jméno |
Typ |
Data |
---|---|---|
(Výchozí) |
REG_SZ |
(hodnota nenastavena) |
Třída |
REG_SZ |
<Název oboru názvů>.<Název třídy> |
CodeBase |
REG_SZ |
<Vaše cesta>\<Název vašeho sestavení> |
Pokud je sestavení v mezipaměti GAC, měly by podklíče registru vypadat podle následující tabulky:
Jméno |
Typ |
Data |
---|---|---|
(Výchozí) |
REG_SZ |
(hodnota nenastavena) |
Třída |
REG_SZ |
<Plně kvalifikovaný název vaší třídy> |
Assembly |
REG_SZ |
<Název vašeho sestavení v mezipaměti GAC> |
Viz také
Koncepty
Vytváření vlastních procesorů pro direktivy textových šablon T4