Значительно улучшил шаблон проекта WiX для создания интсаллятора для установки шаблонов и трафаретов. Для этого сделал специальный WiX Extension. Теперь, чтобы зарегистрировать файл шаблона или трафаретов для Visio, достаточно одной строчки:
<Component> <File Name="Stencil_1_M.vss"> <visio:Publish MenuPath="Group\Stencil 1" /> </File> </Component>
Обновленная версия доступна на Visual Studio Galery. Ее можно установить прямо из Visual Studio, Tools -> Extension Manager. Ссылка на страницу Visual Studio Gallery:
http://visualstudiogallery.msdn.microsoft.com/68d12e2d-eb42-4847-808a-7d80863bb90d
Если вы видели предыдущую версию, то она пестрила всякими не совсем очевидными вещами типа странных GUID-ов. Сейчас для использования все просто — все сложности завернуты в WiX Extension DLL, которая преобразует <visio:Publish> в записи регистрации внутри инсталлятора, и делает все прочие вещи описанные в предыдущих постах. Написание самого расширения оказалось не совсем тривиальной задачей поскольку примеров — кот наплакал. Ну в любом случае, вроде бы все получилось и работает как надо. Может быть если будет время сделаю статью как писать WiX Compiler Extension. Пока что в этом качестве только исходный код проекта на github. Ну в любом случае, это лирика.
Итак, вот элемент <visio:Publish>, который регистрирует шаблон или трафарет в Visio со всеми возможными параметрами (только «MenuPath» — название в меню — является обязательным, все остальные опциональны).
<File Name="Stencil_1_M.vss"><visio:Publish MenuPath="VisioSetupProject4\Stencil 1" Language="en-us" Visio2003="yes" Visio2007="yes" Visio2010="yes" Visio2013="yes" VisioEdition="x86" AltNames="stn1.vss;stencil1.vss" QuickShapeCount="2" /> </File>
Поскольку шаблон предоставляет схему, для всех параметров нормально работаете автокомплит и подсказки, так что не нужно эти опции запоминать, и ошибиться в значении довольно трудно:
Сам проект также был изменен, и теперь включает крошечную DLL вместо vb-скрипта для сброса кэша шаблонов в Visio, и это не нужно больше делать в коде явно, как это было в начальной версии.
Также почистил шаблон от всего что относится к x64 — это только его усложняло. Сейчас все выглядит нисколько не сложнее стандартного проекта WiX.
Пока все.. Предложения — пожелания приветствуются =)