Visio WiX Setup project в Visual Studio Galery

Немного усовершенствовал проект инсталлятора на Wix для Visio. Чтобы упростить использование данного шаблона, опубликовал его как шаблон проекта для Visual Studio в Visual Studio Galery. Так как это первый раз когда я что-либо туда публикую, было интересно разобраться что нужно сделать чтобы все заработало:

11-05-2013 4-19-38

На самом деле, ничего сложного в создании такого шаблона нет. Хорошее введение можно найти на codeproject. Там представлен хороший обзор, как это все работает. Ну в любом случае теперь можно создать проект инсталлятора для Visio, основанном на WiX, так же как и любой другой проект в Visual Studio, вводное видео дальше в этой статье.

Обратите внимание, что для использования шаблона WiX должен быть установлен =)

Воодное видео:

Добавляем один шаблон к проекту:

Исходный код проекта доступен на github (внимание - для сборки требуется Visual Studio SDK).

Инсталлятор, созданный при помощи данного шаблона, должен работать "из коробки" для Visio 2007, 2010, 2013, все языки, 32-bit и 64-bit. Для Visio 2003 (еще есть у кого-то?) нужны дополнительные телодвижения (нужно добавить для него идентификаторы, см. таблицу далее).

Вообще, преимущества создания инсталлятора с помощью WiX:
- Все может быть в одном проекте Visual Studio, включая код, инсталлятор, и т.д. что упрощает процесс сборки.
- Так как исходный код инсталлятора - XML, его можно положить в систему контроля версий.
- Создается MSI-инсталлятор. Windows Installer является технологией установки "по умолчанию". MSI-инсталлятор также легко использовать в организации для установки через групповую политику.
- Если сравнивать со встроенным Visual Studio Deployment Project, вы можете сделать любой пользовательский интерфейс для инсталлятора.
- Обновление поддерживается "из коробки"
- Microsoft сам его использует - например VisioSDK построен с помощью WIX

Технические детали.

Официальной информации об таблицах Windows Installer для Visio не так много, я нашел только KB832029 (для Visio 2007). Так что дальнейшая информация может быть не на 100% верной. Но в любом случае, ниже представлено описание данных таблицы PublishComponent, которая используется для публикации данных для Visio, для текущих версий Microsoft Visio:

Колонка Формат Описание
Component ID <guid> Templates:
All versions: {CF1F488D-8D6F-499C-A78D-026E1DF38100}
Visio 2007: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B000}
Visio 2010: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B100}
Visio 2013: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B200}
Stencils:
All versions: {CF1F488D-8D6F-499C-A78D-026E1DF38101}
Visio 2007: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B001}
Visio 2010: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B101}
Visio 2013: {6D9D8B6F-D0EF-4BC0-8DD4-09DD6CE2B201}
Qualifier LanguageId\FileName Для Visio 2007 и старше, можно использовать '1' как LocaleId для установки на всех языках. Для Visio 2003 и ниже, нужно указывать ВСЕ языки явно (по строчке на язык)
AppData Stencils:
MenuPath|AltNames|QuickShapeCount|Bits
Templates:
MenuPath|AltNames|FeaturedTemplate|Bits
- MenuPath: Путь в меню. Обратный слеш как разделитель.
- AltNames: Список альтернативных имен стенсила/шаблона. Можно использовать для того чтобы ссылаться на стенсил, например из API, или в поиске.
- QuickShapeCount: Число "quick shapes". Первые N фигур станут "quick shapes". Имеет смысл только для Visio 2010 и старше.
- Bits: Для какой редакции Visio публиковать (-1 = все, 32 = 32bit, 64 = 64bit). Имеет смысл только для Visio 2010 и старше.
- Featured template: Показывает шаблон на StartPage. Имеет смысл только для Visio 2007. Для более старших версий шаблон будет показан там в любом случае.

Leave a Reply