2015-07-09 96 views

回答

0

這是一種方法。爲VS2012創建兩個natvis文件,另一個爲VS2013和VS2015創建。

如果您想實施visualization service,請執行以下操作,否則請跳至部署。

您需要定義兩個具有不同GUID和實現的接口。使用natvis文件中的UIVisualizer XML元素來分配與natvis文件對應的接口的GUID。現在,在VSPackage的的初始化方法,包括這段代碼:

appObject = (DTE2)GetService(typeof(DTE)); 
if(appObject.Version == "11.0") 
{ 
    // Register the VS2012 visualization service using ((IServiceContainer)this).AddService(). 
} 
else 
{ 
    // Register the VS2013/VS2015 visualization service. 
} 

要部署包,創建兩個VSIX容器,其是在各方面都相同,只是第一包括一個natvis文件和其他包括其他natvis文件。要包括natvis文件,Asset元素添加到VSIX清單:

<PackageManifest ...> 
    . 
    . 
    . 
    <Assets> 
    <Asset Type="NativeVisualizer" Path="natvis.xml"/> 
    </Assets> 
</PackageManifest> 

這樣你將有一個延伸而是兩個VSIX容器。

+0

謝謝,但Visual Studio Gallery不允許爲一個擴展上傳幾個VSIX文件。因此,我將不得不爲每個版本的VS發佈一個單獨的擴展。 – KindDragon

+1

@KindDragon問題是如何將natvis文件部署到相應版本的VS.一種方法是創建不同的VSIX容器。另一種方法是將該natvis文件作爲資源嵌入到MSI安裝程序中,並在安裝擴展程序時將它們複製到相應的文件夾(%USERPROFILE%\ My Documents \ Visual Studio [2012 | 2013 | 2015] \ Visualizers \)。另一種方法是在擴展程序在Visual Studio中第一次加載時創建natvis文件。當調試會話開始時,VS會自動選擇正確的natvis。 –

+0

謝謝。我會嘗試使用msi安裝程序 – KindDragon

相關問題