我在Visual Studio 2017中有一个.vsix解决方案,用于部署4个片段片段。
每个具有自己的xml或C#代码片段的文件夹都需要它自己的.pkgdef文件吗?还是我们只需要一个直接位于CompanySnippets下的.pkgdef文件?
我问是因为我们有一个带有以下条目的.pkgdef文件
[$RootKey$\Languages\CodeExpansions\CSharp\Paths]
"CompanyCodeSnippets"="$PackageFolder$"
[$RootKey$\Languages\CodeExpansions\Xml\Paths]
"CompanyCodeSnippets"="$PackageFolder$"
但是我们在代码片段方面遇到了无法识别的语言问题,我想我已经将其问题拖到了.pkgdef文件中。
如果我为每个片段片段分别创建一个.pkgdef,我将让它们显示出来。
我对如何查看$ RootKey $的值以及$ PackageFolder $的含义感到困惑。除了MS所说的以外,没有多少关于这些值的文档。我正在调试VS 2017,应该在Registry Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0处进行调试,但是该注册表没有Languages \ CodeExpansion,所以我不确定这是否是我们的问题的一部分。
我也不确定$ PackageFolder $是否从子文件夹中获取摘要。
非常感谢您的帮助。
答案 0 :(得分: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"
(抱歉,如果需要在路径中转义反斜杠字符,我将不记得了)