2015-07-09 2 views
1

Я создаю расширение, которое устанавливает собственные визуализации (natvis), но каждая новая версия VS содержит новые функции в формате natvis.Как установить разные файлы для разных версий Visual Studio

Я хочу создать одно расширение, которое работает для всех версий VS Если бы можно было установить разные файлы нацвиса в зависимости от версии VS.

ответ

0

Вот один из способов сделать это. Создайте два файла natvis для VS2012, а другой для VS2013 и VS2015.

Если вы хотите реализовать visualization service, выполните следующие действия, в противном случае перейдите к развертыванию.

Вам необходимо определить два интерфейса с различными GUID и реализациями. Используйте XML-элемент UIVisualizer в файлах natvis, чтобы назначить GUID интерфейса, который соответствует файлу natvis. Теперь в методе Initialize в 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 \) при установке расширения. Еще один способ - создать файлы natvis, когда расширение будет загружено впервые в Visual Studio. Когда начинается сеанс отладки, VS автоматически подберет правильный natvis. –

+0

Спасибо. Я попробую с установщиком MSI – KindDragon

Смежные вопросы