Какую запись сделать в.pkgdef для расширения.vsix Visual Studio Snippets

У меня есть решение.vsix в Visual Studio 2017 для развертывания 4 папок фрагментов.

Вот как это выглядит

Нужно ли каждой папке, имеющей свои собственные фрагменты xml или C#, свой собственный файл.pkgdef? Или нам нужен только один файл.pkgdef, расположенный прямо под CompanySnippets?

Я спрашиваю, потому что у нас был один файл.pkgdef со следующими записями

[$RootKey$\Languages\CodeExpansions\CSharp\Paths]
"CompanyCodeSnippets"="$PackageFolder$"

[$RootKey$\Languages\CodeExpansions\Xml\Paths]
"CompanyCodeSnippets"="$PackageFolder$"

Но у нас возникают непризнанные языковые проблемы для фрагментов кода, и я думаю, что устраню их до файла.pkgdef.

Если я создам отдельный файл.pkgdef для каждой папки фрагментов, я их покажу.

Я запутался в том, как посмотреть на значение $RootKey$ и на что действительно влияет $PackageFolder$. Не много документации по этим значениям, кроме того, что MS говорит, что они есть. Я отлаживал VS 2017, и он должен находиться в реестре компьютера \HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0, но в этом реестре нет Languages ​​\CodeExpansion, поэтому я не уверен, является ли это частью нашей проблемы.

И я также не уверен, что $PackageFolder$ захватывает фрагменты из подпапок.

Буду признателен за любую оказанную помощь.

0 ответов

Возможно, поздно вечером, но вот официальная документация по всем поддерживаемым строкам замещения в файлах pkgdef: https://docs.microsoft.com/en-au/visualstudio/extensibility/substitution-strings-used-in-dot-pkgdef-and-dot-pkgundef-files?view=vs-2015.

Одного pkgdef должно быть достаточно, но вы, скорее всего, захотите хранить фрагменты C# и XML в отдельных папках, иначе диспетчер фрагментов может быть сбит с толку.

Вот как должна выглядеть соответствующая часть вашего pkgdef:

[$RootKey$\Languages\CodeExpansions\CSharp\Paths]
"CompanyCodeSnippets"="$PackageFolder$\CompanyCodeSnippets-CSharp"

[$RootKey$\Languages\CodeExpansions\Xml\Paths]
"CompanyCodeSnippets"="$PackageFolder$\CompanyCodeSnippets-Xml"

(извиняюсь, не могу вспомнить, если мне нужно убрать символы обратной косой черты в путях)

Другие вопросы по тегам