Шаблоны проектов.
Шаблоны проектов.
Выпало пару-тройку дней на раскачку и Я решил поковырятся в шаблонах проектов.
Все одно надо будет делать, да и так уже надоело в ручную создавать пары - длл + тестс.длл.
Шаблончик - сделал.
Второй шаблончик - тоже сделал.
Скомпоновать пару в один шаблон - тоже сделал...
А вот как начал лепить производную ИВизард - все пошло на перекосяк...
Ладушки - выкинул все и начал с чистого листа.
Первый шаблон - без проблем, второй шаблон - без проблем... общий инсталлятор - тоже создался...
А дальше - тупик. Как добавить ОДИН шаблон в инсталлятор - знаю, никаких проблем...
А как добавить второй? Пробовал - не работает. Т.е. все собирается, но отрабатывает только
один шаблон.
Для одного проекта все просто - есть в корне зипованного шаблона файлик *.VSTemplate
В этом файлике прописано - VSTemplate->TemplateContent->Project
и там список чего и куда складывать при построении проекта.
Для двух и более проектов - тоже не сложно - VSTemplate->TemplateContent->ProjectCollection->[ProjectTemplateLink]*
А вот где в Студии надо указывать что проектов больше одного - не нашел...
Ну да - могу прописать руками...
Второй момент который не понимаю.
Добавляю код - имплементацию ИВизард. Сам код - примитивный, никакого интереса не представляет.
По условиям его применения надо прописать использование в VSTemplate->WizardExtension
Ну и куда же его прописывать? Шаблонов - ДВА. Код должен работать ДО активной фазы генерации
и быть одним на оба шаблона. Т.е. в один из шаблонов - не правильно. А куда? Тот VSIX,
в котором упоминаются оба шаблона, никакого местечка для ссылки на Визард не имеет... да и не
должен вроде...
В общем, вопрос получается такой:
- Как создать шаблон солюшена, на два и более проектов, и прикрутить к нему активный код?
Разумеется - средствами Студии. Руками вроде как понятно что делать...
Да, еще вопросик - для использования шаблонов генерируется 10 ГУИДов. Куда деваться если надо генерировать больше 10 проектов?
Да, забыл...
Прописывал Я два шаблона в vstemplate и собирал ЗИПу - все отрабатывало.
Студия, однако, собирать шаблон из двух шаблонов совершенно не хочет -
ругается на длину чего-то меньше нуля. в таргетсах...
Насколько Я понял - ругается на отсутствие "Proect"
и не обрабатывает "ProjectCollection".
Об билли мне сказать или кто еще об это спотыкался?
Блин, как это заставить компилироваться?
Качество продуцируемого кода - не интересует. Интересует - чтобы компилировалось, деплоилось и порождало два проекта в солюшене...
Странно... У ИВизард для есть метод:
public void RunStarted(
object automationObject,
Dictionary<string, string> replacementsDictionary,
WizardRunKind runKind,
object[] customParams)
{
}
где WizardRunKind может иметь значение IsMultiProject.
Вот только нефига не получается собрать этот мулти-проэкт-темплате в Студии...
Век живи - век учись...
Кому интересно - решение проблемы мулти-проект-шаблона
https://blog.tonysneed.com/2011/09/14/build-a-multi-projec...
<Content><Assembly AssemblyName="RestTemplateWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c9a76f51a8a9555f">ProjectTemplates\WCF\RestTemplateWizard.dll</Assembly><ProjectTemplate>ProjectTemplates</ProjectTemplate></Content>
Так тупо...