2015-07-09 97 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

相关问题