2015-01-21 49 views
0

我試圖使用.vsi.vscontent文件分發一些SQL_SSDT Visual Studio代碼片段分發SQL_SSDT代碼片斷,但在安裝我得到一個錯誤:使用vscontent(lang屬性錯誤)

的。 vscontent文件包含無效屬性或爲未安裝的編程語言指定代碼段。

.vscontent文件基於微軟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,因爲這是所需的v在.snippet文件中(<Code Language="SQL_SSDT">)。

安裝按預期開始(雙擊.vsi文件),VS內容安裝程序彈出,列出包含的內容。打到Finish後發生錯誤。 (安裝開始,但上面的錯誤在幾秒鐘後彈出)

如果我將它複製到SSDT的默認片段文件夾(Documents\Visual Studio 2012\Code Snippets\SQL_SSDT\My Code Snippets),或者我通過片段管理器將其添加到片段管理器中SSDT,但.vsi安裝使用上述文件失敗。

我錯過了什麼嗎?

此框安裝VS產品:

  • SSDT
  • SSDT-BI
  • VS Express的桌面(2012)

更新

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

現在的問題是:SSDT是否將任何擴展添加到此XML模式?

回答

0

似乎VS內容安裝程序不支持部署SSDT代碼片段。有一個請求此功能的idea on visualstudio.uservoice.com,但它仍處於打開狀態。

我沒有發現任何與此問題有關的其他資源。

有一種可能的解決方法,需要測試:您可以創建一個PS/BAT,將片段文件複製到VS的片段文件夾中供SSDT使用。