VS13 / VS15 - 无法导入SQL片段

时间:2016-07-29 11:39:21

标签: sql visual-studio visual-studio-2013 visual-studio-2015 code-snippets

我想在VS2013和VS2015中创建sql片段。我不知道为什么,但导入时出错(在两个VS中): “C:\ sql.snippet:缺少或未指定的语言属性”

我的片段:

<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2008/CodeSnippet">
<CodeSnippet Format="1.0.0">
    <Header>
        <Title>
            My Snippet
        </Title>
    </Header>
    <Snippet>
        <Code Language="SQL">
            <![CDATA[select * from MyTable]]>
        </Code>
    </Snippet>
</CodeSnippet>

怎么了? 语言“SQL”应该没问题https://msdn.microsoft.com/en-US/library/ms171418.aspx#code

我尝试将此代码段添加到语言“Miscrosoft SQL Server数据工具,T-SQl ......” 如果我已将语言属性更改为例如“CSharp”它有效。

3 个答案:

答案 0 :(得分:0)

试试这个。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>
                My Snippet
            </Title>
        </Header>
        <Snippet>
            <Code Language="SQL">
                <![CDATA[select * from MyTable]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

你也可以检查一下它是否有效,但仍会发出警告。

http://providersweb.blogspot.se/2016/01/visual-studio-snippets-missing-or.html

  

我在Snippets输出窗口中收到了一个消息列表   当我加载一个项目,一些片段有一个“缺失”或   未指定的语言属性&#39;并无法弄清楚为什么这些   消息出现了。我检查了语言属性   片段,他们是正确的,但仍然得到了消息。我订了   每个语言类型的文件夹,但仍然收到消息。一世   终于弄清楚我已经指定他们都是VB片段   Snippet经理和那些不是VB的经理会导致   输出窗口中的消息,即加载VB项目时,   CSharp片段会生成错误消息。我修好了   进入片段管理器并指定语言,VB或   CSharp,并将片段添加到正确的语言并删除   他们来自无效的语言。而现在这些消息无效   语言属性不会出现在我的输出屏幕上。

答案 1 :(得分:0)

而不是:

<Code Language="SQL">

写:

<Code Language="SQL_SSDT">

Visual Studio仅支持MSSQL Server数据工具&amp; T-SQL语言脚本,而不是像SSMS那样的SQL。

答案 2 :(得分:0)

您使用的语言属性值SQL是正确的。从VS2015 Code Snippets Schema Reference

enter image description here

如果直接在代码片段管理器已知的文件夹之一中编辑代码片段文件,则可能会出现诸如您看到的错误。显然,除了片段XML本身中的内容外,Visual Studio还拥有自己的元数据。因此,最好在临时文件夹中进行编辑,然后使用“导入”按钮。

例如,在将任何编辑保存到My Code Snippets文件夹中的新C#代码段中时,我一直收到错误消息“ Missing or unspecified Language attribute”(或者缺少)。原来我在Visual Basic\My Code Snippets文件夹中,并且还有一个Visual C#\My Code Snippets文件夹,我应该在其中。这是一个愚蠢的错误,但是它说明“语言” XML属性是不够的,因为Visual Studio拥有自己的内部约定来处理不同代码段类型(以及谁知道其他什么)的不同文件夹,这些都在导入时发生按钮。

我将代码段文件删除到一个临时位置,然后使用“导入”按钮从那里将其添加。我这样做后,问题就消失了,代码段开始正常工作。