Я создал собственный языковой пакет, расширяющий ProjectPackage. Я могу правильно создать новый проект. Я хотел бы иметь возможность добавлять в проект новые исходные файлы с помощью пункта меню Добавить-> Новый элемент ... (Ctrl + Shift + A). Однако, когда я щелкаю по нему, список доступных шаблонов пуст. Я хотел бы добавить свой собственный шаблон в меню доступных шаблонов для этого типа проекта. Есть ли документация для этого? Единственные упоминания, которые я видел, это взлом реестра, но должен быть способ сделать это программно, как я думаю.
Есть ли какой-то особый метод, который я могу переопределить для заполнения списка? Действительно ли мне нужно создавать шаблон, или я могу просто показать 'имя шаблона', 'значок' и указать правильное расширение файла (файлы должны быть пустыми при создании, поэтому я думаю, что шаблон в значительной степени тратится на то, что я хочу сделать).
Вот путь, по которому я шел до сих пор. Я решил, что могу установить тип проекта и GUID в моем пользовательском файле .vproj (.vproj - это расширение файла, под которым зарегистрирован мой собственный проект). Я думал, что могу быстро создать шаблон элемента с тем же ProjectType, что и мой файл .vproj.
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<Icon>VerilogSource.ico</Icon>
<DefaultName>module.v</DefaultName>
<Name>Basic Verilog Module</Name>
<Description>
A basic Verilog module for quickly adding new files to the project.
</Description>
<ProjectType>VerilogProject</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectItem TargetFileName="$fileinputname$.v"
ReplaceParameters="true">module.v</ProjectItem>
</TemplateContent>
</VSTemplate>
Увы, этот шаблон вообще не отображается, хотя я включил его в VSIX и скопировал в выходной каталог. Если я помещу этот шаблон в ту же папку, что и мой .vproj, он появится как шаблон для создания нового проекта (неправильно!) И все равно не будет отображаться в моем списке новых элементов. Все это может быть связано с тем, что я не использую VSTemplate для создания своего проекта. Вместо этого я использую [ProvideProjectFactoryAttribute], чтобы VS2010 знал, где находится мой файл vproj, и он будет использовать файл vproj (который, я думаю, вы могли бы назвать шаблоном, но это не VSTemplate, это проект) для создания нового project off of.
Это то место, где я нахожусь до сих пор, и я продолжаю пробовать новые вещи. Я надеюсь, что у кого-то есть ответ, который я ищу. Спасибо,
Giawa