Visual Studio Интеллектуальные шаблоны проектов - PullRequest
2 голосов
/ 23 августа 2009

Мне нужно создать шаблон проекта Visual Studio, который обладает определенным интеллектом. Я обнаружил способ заставить Visual Studio вызывать мой пользовательский код при создании нового проекта из моего шаблона, пользовательский код отображает диалоговое окно и собирает информацию от пользователя, а затем определяет дополнительные замены, которые может использовать шаблон проекта. Все хорошо.

Этот шаблон ранее представлял собой набор из нескольких очень похожих шаблонов, которые отличались только тем, какой интерфейс был реализован основным классом. Моя цель - объединить эту коллекцию шаблонов в один «умный шаблон», который автоматически реализует правильный интерфейс в зависимости от пользовательского ввода.

Для этого мне нужно изменить сгенерированный код во время его создания. Visual Studio вызывает мой пользовательский код мастера после создания нового проекта, а затем я хотел бы перейти на вновь созданный код C # и программно добавить реализацию интерфейса. Я хотел бы добавить ": IMyInterface" после основного класса, а затем вызвать IntelliSense, чтобы расширить реализацию для меня. Это часть, которую я не знаю, как сделать.

Может кто-нибудь дать мне несколько советов о том, как автоматизировать реализацию интерфейса с помощью объектной модели Visual Studio?

Ответы [ 3 ]

0 голосов
/ 07 декабря 2009

Я думаю, что лучшее решение, которое соответствует вашим потребностям, - это использовать GAT и GAX.

Требуется немного усилий, чтобы все заработало, но это определенно может помочь вам: http://msdn.microsoft.com/en-us/teamsystem/aa718948.aspx

0 голосов
/ 18 января 2011

Проблема, связанная с использованием GAX, заключается в том, что конечным пользователям необходимо загрузить инфраструктуру перед установкой шаблона, созданного с использованием GAX.

Лучшим решением является использование VS 2010 SDK для сборки VSIX, при котором конечным пользователям не требуется загружать дополнительный плагин для установки шаблона. Вы можете посмотреть здесь: Многопроектные шаблоны с помощью мастера: Образец Visual Studio 2010

0 голосов
/ 28 августа 2009

Если вы можете открыть сам файл и загрузить его в виде текста, вы можете просто поместить заполнитель вместо исходного интерфейса (скажем, # interface_placeholder #), а затем выполнить поиск / замену этого в и добавьте это в проект вместо исходного файла. Я думаю, что это должно быть возможно, в любом случае. Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...