Я добавил новую цель сборки в свой проект Visual Studio C ++ (vcxproj).
Эта цель запускает пользовательский инструмент при сборке проекта.Инструмент обрабатывает определенные файлы в решении в соответствии с указанными ContentType и ItemType I.Это хорошо работает с действиями проекта, такими как «Сборка» и «Очистка».
Теперь я хотел бы поддержать действие, эквивалентное «компиляции», то есть щелкнуть правой кнопкой мыши файл в обозревателе решений и выбрать обработкуэтот конкретный файл с моим пользовательским инструментом (так же, как «compile» запускает «CL» для типов файлов «C / C ++ Code»).
Я знаю, что мог бы добавить макрос Visual Studio для этого.Это не очень хорошее решение для меня, потому что его сложнее развернуть для многих пользователей.Лучшее решение - настроить vcxproj (или импортированные им файлы).
Интересно, возможно ли добавить в меню действие, подобное «компиляции» (или изменить поведение «компилировать» для типов файлов, отличных от «C»)?/ C ++ Code ") с помощью сценариев целей msbuild или PropertyPageSchema.
ОБНОВЛЕНИЕ: я начал обсуждение на форуме MSDN.Получил некоторые ответы от модератора Microsoft, который помог прояснить некоторые вещи, но проблема все еще не решена.
ОБНОВЛЕНИЕ (2016), для VS2015
AvailableItemName
, кажется, решает эту проблемуна VS2015.Например, у меня есть пользовательская цель для обработки файлов Excel.
В файле целей:
<ItemGroup>
<PropertyPageSchema Include="$(SolutionDir)\ExcelOptions.xml" />
</ItemGroup>
<ItemGroup>
<AvailableItemName Include="Excel">
<Targets>ProcessExcel</Targets>
</AvailableItemName>
</ItemGroup>
В файле параметров:
<FileExtension Name=".xls" ContentType="Excel"/>
<ContentType Name="Excel" DisplayName="Excel File" ItemType="Excel"/>
<ItemType Name="Excel" DisplayName="Excel File"/>
Теперь Компиляция доступна в контекстном меню обозревателя решений.после выбора файла Excel, и CTRL-F7 также работает (для файлов, которые можно редактировать в VS, а не для файлов Excel)