NuGet列系-添加Visual Studio對NuGet的nuspec檔案編輯IntelliSense

雖然有NuGet package explorer可以編輯nuspec,但是只是要變更一點改內容,用NuGet package explorer太廢事了,而且nuspec檔案是XML的格式,可以直接在Visual Studio編輯,只要提供XSD(XML Schema Definition)檔,Visual Studio就可以依照Schema的內容提供IntelliSense。

雖然有NuGet package explorer可以編輯nuspec,但是只是要變更一點改內容,用NuGet package explorer太廢事了,而且nuspec檔案是XML的格式,可以直接在Visual Studio編輯,只要提供XSD(XML Schema Definition)檔,Visual Studio就可以依照Schema的內容提供IntelliSense。

 

添加方法

將XSD放入專案目錄(僅該專案使用),或是放入下列資料夾中(全域):

x64環境

C:\Program Files (x86)\Microsoft Visual Studio %Edition%\Xml\Schemas

x86環境

C:\Program Files\Microsoft Visual Studio %Edition%\Xml\Schemas

 

至於XSD檔,官方沒有提供載點,但是Source Code中有,不過Source Code中的XSD需要做一點小修改,我這邊將已經改好的提供各位下載。

下載nuspec.xsd.7z

裡面有三個版本的檔案

  • nuspec-2010-07.xsd
  • nuspec-2011-08.xsd
  • nuspec-2011-10.xsd

將這三個檔案放入上列資料夾即可。

 

官方XSD下載方法

http://nuget.codeplex.com/SourceControl/list/changesets下載SourceCode或是使用Browse的方式複制檔案

XSD檔案的路徑在

src\Core\Authoring\nuspec.xsd

但是檔案中有不少的替代字元

image

 

看版本差異與一些原檔案,這是官方的設計,Schema只有增加元素,沒有刪除元素,所以新版的Schema可以容舊,NuGet Tool執行時會態動換Namespace,而上面提供三個檔案也只有Namespace不同,其他內容都一模一樣。

 

我是看

src\Core\Authoring\ManifestSchemaUtility.cs

這一個檔案發現有三種版本

image

 

版本上的差異,註解也有寫,如果想要詳細差異可以比較不同版本的原始碼。

image