我正在创建一个安装原生可视化(natvis)的扩展程序,但每个新版本的VS都包含natvis格式的新功能。
我想创建一个适用于所有VS版本的扩展名如果可以根据VS的版本安装不同的natvis文件。
答案 0 :(得分:1)
这是一种方法。为VS2012创建两个natvis文件,为VS2013和VS2015创建另一个。
如果要实施visualization service,请执行以下操作,否则跳至部署。
您需要定义具有不同GUID和实现的两个接口。使用natvis文件中的UIVisualizer XML元素来分配与natvis文件对应的接口的GUID。现在,在VSPackage的Initialize方法中,包含以下代码:
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文件,请在VSIX清单中添加Asset
元素:
<PackageManifest ...>
.
.
.
<Assets>
<Asset Type="NativeVisualizer" Path="natvis.xml"/>
</Assets>
</PackageManifest>
通过这种方式,您将拥有一个扩展名,但只有两个VSIX容器。