Nastavení vlastního procesoru direktiv
Pokud chcete použít vlastní procesor direktiv v sadě Visual Studio na libovolném počítači, musíte ho zaregistrovat některou z metod popsaných v tomto tématu.
Alternativní metody jsou následující:
Rozšíření sady Visual Studio 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.
Balíček 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 musíte použít pouze v případě, že chcete transformovat textová šablona v sadě Visual Studio nebo 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í sady Visual Studio (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 direktiv Koř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 nový projekt projektu VSIX.
V souboru source.extension.vsixmanifest nastavte typ obsahu a podporované edice.
V editoru manifestu VSIX na kartě Prostředky zvolte Nový a nastavte vlastnosti nové položky:
Balíček VSPackage typu = obsahu
Zdrojový projekt = <aktuální projekt>
Klikněte na Vybrané edice a zkontrolujte typy instalace, na 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 a pojmenujte ho <assemblyName.pkgdef>.
<assemblyName> je obvykle stejný jako název projektu.
V Průzkumníku řešení ho vyberte a následujícím způsobem nastavte jeho vlastnosti:
Akce sestavení = Obsah
Vždy kopírovat do výstupního adresáře =
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"
Nahraďte následující názvy vlastními jmény:
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.
Toto je veřejná třída, která by měla implementovat DirectiveProcessor nebo RequiresProvidesDirectiveProcessor.
Instalace vlastního procesoru direktiv
V Průzkumníku Windows 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í program 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 Visual Studio Tools klikněte na Správce rozšíření.
Vyberte VSIX, který obsahuje procesor direktiv, a klepněte na tlačítko 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 ve vlastní direktivě, by měl odpovídat
CustomDirectiveProcessorName
názvu, který jste zadali v souboru .pkgdef.Vaše
IsDirectiveSupported
metoda se musí vrátittrue
, když je předán název vašehoCustomDirective
.Pokud rozšíření ve Správci rozšíření nevidíte, ale systém vám ho nedovolí nainstalovat, odstraňte rozšíření z %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 se nezobrazí, otevřete soubor .csproj v textovém editoru a odeberte následující uzel: <GeneratePkgDefFile>false</GeneratePkgDefFile>
.
Další informace najdete v tématu Balíčky VSPackage.
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
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 výraz "Exp" za "11.0".
Přidejte klíč registru, který má stejný název jako třída procesoru direktiv.
- Ve stromu registru klepněte pravým tlačítkem myši na uzel DirectiveProcessors , přejděte na příkaz Nový a klepněte na tlačítko 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 myši 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:
Name | Type | Data |
---|---|---|
(Výchozí) | REG_SZ | (hodnota nenastavena) |
Třída | REG_SZ | <Název>< oboru názvůNázev třídy> |
CodeBase | REG_SZ | <>Cesta\<Název sestavení> |
Pokud je sestavení v mezipaměti GAC, měly by podklíče registru vypadat podle následující tabulky:
Name | Type | Data |
---|---|---|
(Výchozí) | REG_SZ | (hodnota nenastavena) |
Třída | REG_SZ | <Plně kvalifikovaný název třídy> |
Sestavení | REG_SZ | <Název sestavení v GAC> |