使用 vscontent 分发 SQL_SSDT 代码片段(lang 属性错误)

Distribute SQL_SSDT Code Snippets using vscontent (lang attribute error)

我正在尝试使用 .vsi.vscontent 文件分发一些 SQL_SSDT Visual Studio 代码片段,但我在安装时遇到错误:

The .vscontent file either contains invalid attributes or specifies a code snippet for a programming language that is not installed.

.vscontent 文件基于 Microsoft How to: Distribute Code Snippets

提供的文档

本网站的示例如下:

<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005">
    <Content>
        <FileName> </FileName>
        <DisplayName> </DisplayName>
        <Description> </Description>
        <FileContentType> </FileContentType>
        <ContentVersion>2.0</ContentVersion>
        <Attributes>
            <Attribute name="lang" value=""/>
        </Attributes>
    </Content>
</VSContent>

我的文件如下所示:

<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005">
    <Content>
        <FileName>SSDTTest.snippet</FileName>
        <DisplayName>SSDTTest</DisplayName>
        <Description>SSDTTest</Description>
        <FileContentType>Code Snippet</FileContentType>
        <ContentVersion>1.0</ContentVersion>
        <Attributes>
            <Attribute name="lang" value="SQL_SSDT"/>
        </Attributes>
    </Content>
</VSContent>

我使用值 SQL_SSDT 因为这是 .snippet 文件 (<Code Language="SQL_SSDT">) 中的必需值。

安装如期开始(双击.vsi文件),弹出VS Content Installer,列出包含的内容。错误发生在点击 Finish 之后。 (安装开始,但几秒后弹出上述错误。)

如果我将它复制到 SSDT (Documents\Visual Studio 2012\Code Snippets\SQL_SSDT\My Code Snippets) 的默认代码片段文件夹,或者如果我通过 SSDT 中的代码片段管理器添加它,该代码片段工作正常,但 .vsi 安装失败使用上述文件。

我是不是漏掉了什么?

此盒子上安装的 VS 产品:

更新

我找到了 XML schema reference for the .vscontent files (VS2012),SQL_SSDT 似乎不是 Lang 属性的有效值。它表明 lang 属性只有四个可用值。 (csharp, jsharp, vb, xml).

现在的问题是:SSDT 是否为此 XML 架构添加任何扩展?

VS Content Installer 似乎不支持部署 SSDT 代码片段。有一个帖子 idea on visualstudio.uservoice.com 请求此功能,但它仍处于打开状态。

我没有找到与此问题相关的任何其他资源。

有一个可能的解决方法,需要测试:您可以创建一个 PS/BAT 将代码片段文件复制到 VS 的 SSDT 代码片段文件夹中。