Расширение функциональности Visual Studio для типа проекта Installshield ISPROJ

InstallShield должен быть самым дурацким "промышленным стандартом" из существующих приложений по причинам, слишком многочисленным, чтобы перечислять здесь. Тем не менее, один из этих недостатков - это то, что я хотел бы исправить, и с моей первой попытки написать расширение для Visual Studio (в настоящее время используется версия 2015 года).

InstallShield создал тип.isproj, чтобы разрешить интеграцию с Visual Studio. Это позволяет разработчику создавать установщик, который ссылается на выходные данные проекта как на файлы, включаемые в установщик (вместо того, чтобы вручную выбирать отдельные файлы для включения). Это работает достаточно хорошо, пока.isproj создается в Visual Studio и в решении, которое ссылается на проект, для которого вам нужен вывод.

Тем не менее, у меня также есть автоматическая сборка для моих проектов инсталлятора, которую мы запускаем на сервере сборки с помощью MSBuild. При попытке построить этот путь мы получали совершенно непрозрачные сообщения об ошибках, указывающие на то, что указанные выше выходные данные проекта не могут быть разрешены.

Как и во всех ошибках InstallShield, поиск в Google ответов ничего не дал, кроме множества других людей, имеющих такую ​​же проблему. Поэтому я решил покопаться в простом тексте.isproj, чтобы посмотреть, что я смог найти.

Как выясняется, тип.isproj - это обычный сценарий MSBuild, и в нем даже есть закомментированные строки, поясняющие параметры, которые можно добавить в проект; одна из тех вещей, которые можно добавить, - это ItemGroup, содержащая узлы ProjectReference. Добавление узлов вручную помогло решить проблему. Сборка из командной строки теперь работает.

Тем не менее, я не удовлетворен тем, что а) приходится вручную вводить эти данные, б) не иметь визуального представления того, на какие проекты ссылаются, и в) не узнавать о проблеме до тех пор, пока сборка не завершится неудачей. Итак, я хотел бы иметь возможность расширить Visual Studio, чтобы помочь мне в этом. Вот что я хотел бы сделать:

1) Добавьте узел "Ссылки" в проект в обозревателе решений, который действует как узел "Ссылки" для любого обычного.csproj.

2) Ограничить доступные ссылки на другие проекты в текущем решении.

3) Визуально представляйте проект с отсутствующими ссылками (например, подчеркивая имя проекта с помощью цветного волнистого элемента, как, например, с ошибками / предупреждениями), и, возможно, не выполняйте сборку в случае отсутствия (в зависимости от того, хочу ли я рассматривать его как ошибку или предупреждение TBD).

Для этого я скачал MPF для проектов - Visual Studio 2013, который предоставляет SDK для создания нового типа проекта.

Однако, прежде чем копать слишком глубоко, я должен знать, возможно ли вообще РАСШИРЯТЬ существующий тип проекта, как описано выше, поскольку у меня, очевидно, нет исходного кода InstallShield. Кроме того, любые ссылки или рекомендации относительно отправной точки для этого будет принята с благодарностью.

Вот как выглядит проект.isproj в Solution Explorer

0 ответов

Другие вопросы по тегам