Поделиться через


Создание нового проекта: В клобуком элемента, соответствует

Всегда подумал о том, как создать собственный тип проекта? Интересуйте, что фактически происходит при создании нового проекта? Let - нам принимать считывать под клобук и увидеть, что на самом деле поступает on.

Несколько задач координаты того, Visual Studio автоматически:

  • Он показывает дерево всех доступных типов проектов.

  • Отображает список шаблонов приложения для каждого типа проекта и позволяет выбрать одно из значений.

  • Он собирает данные проекта для приложения, например имя и путь проекта.

  • Оно передает эти сведения в рабочей среде проекта.

  • Он создает элементы проектов и папок в текущем решении.

Диалоговое окно " создание проекта "

Все начинается при выборе типа проекта для нового проекта. Let - нам запустить, щелкнув Создать проект в меню Файл. Диалоговое окно Создать проект, смотрящ примерно так:

Диалоговое окно “Новый проект”

Let - нам взглянуть больше внимания. Дерево Типы проектов список различных типов проектов, которые можно создать. При выборе типа проекта как Windows на Visual C# можно будет видеть список шаблонов приложения для начала работы. Установленные шаблоны Visual Studio устанавливается Visual Studio и доступны любому пользователю компьютера. Новые шаблоны, созданные собирать можно добавить в Мои шаблоны и доступны только к пользователю.

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

В нижней части диалогового окна Создать проект, вы увидите несколько элементов управления, собирающие дополнительные сведения. Элементы управления отображаются зависящие от типа проекта, однако в целом они включают текстовое поле Имя проектов текстовое поле Расположение и связанная Обзор флажок кнопки и текстового поля Имя решения и связанных Создать каталог для решения.

Заполнение диалоговое окно " создание проекта "

, Где диалоговое окно Создать проект возвращает его данные? 2 Механизма на рабочем здесь один из них нерекомендуемых. Диалоговое окно Создать проект объединяет и отображает сведения, полученным из двух механизмов.

Более старая (нерекомендуемый) метод использует записи системного реестра и файлы .vsdir. Этот механизм работает, когда Visual Studio открыло. Более новый метод использует файлы vstemplate. Этот механизм работает при инициализации Visual Studio, например, путем запуска

devenv /setup

или

devenv /installvstemplates

Типы проектов

Позиция и имена корневых узлов Типы проектов, как Visual C# и Другие языки, определенных записей системного реестра. Организация дочерних узлов, например База данных и Смарт-устройство, отражает иерархию папок, которые содержат соответствующие файлы vstemplate. Let - нам выглядеть корневые узлы в первую очередь.

Корневые узлы типа проекта

При Visual Studio инициализации оно траверсирует подразделов раздела реестра HKEY_LOCAL_MACHINE \ software \ Microsoft \ VisualStudio \ 10,0 \ system \ NewProjectTemplates TemplateDirs для построения и назвать корневые узлы дерева Типы проектов. Эта информация кэшируется для последующего использования. Посмотрите на} {\ TemplateDirs FAE04EC1-301F-11D3-BF4B-00C04F79EFBC \ /1 ключей. Каждая запись GUID VSPackage. Имя подраздела (/1) не учитывается, но ее присутствие указывает, что это корневой узел Типы проектов. Корневой узел может содержать несколько подразделов в свою очередь, отслеживающие его внешнего вида в дерево Типы проектов. Let - нам посмотреть некоторые из них.

(Значение по умолчанию)

Это идентификатор ресурса локализованной строки этой имена корневой узел. Строковый ресурс найден в вспомогательной библиотеки DLL выбранном GUID VSPackage.

В примере идентификатор GUID VSPackage

{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}

и идентификатор ресурса (по умолчанию) корневого узла (/1) #2345

Если ищется идентификатор GUID в близрасположенных пакетах, то ключей и расмотритесь подраздел SatelliteDll, можно найти путь к сборке, содержащей ресурс строки:

<путь установки Visual Studio>\ VC# \ VCSPackages \ 1033 \ csprojui.dll

При проверке этого открыть обозреватель файла и перетащите csprojui.dll в каталог Visual Studio. В таблицу строк указывает, что ресурс #2345 имеет заголовок Visual C#.

SortPriority

Это указывает расположение корневого узла в дереве Типы проектов.

SortPriority REG_DWORD 0x00000014 (20)

Низкий приоритет, чем выше число позиция в дереве.

DeveloperActivity

Если этот подраздел, то позиция корневого узла управляет диалоговым окном параметров разработчика. Например:

DeveloperActivity REG_SZ VC#

указывает, что будет корневым узлом Visual C#, Visual Studio для разработки Visual C++ набор. В противном случае будет дочерним узлом Другие языки.

Папка

Если этот подраздел, то корневой узел становится дочерним узлом указанной папки. Список возможных папок отображается под ключ

HKEY_LOCAL_MACHINE \ software \ Microsoft \ VisualStudio \ 10,0 \ NewProjectTemplates \ PseudoFolders

Например, запись проектов баз данных имеет ключ папки, который соответствует другой записи типы проектов PseudoFolders. Таким образом, в дереве Типы проектов, Проекты баз данных станет дочерним узлом Другие типы проектов.

Дочерние узлы типа проекта и файлы .vstdir

Положение дочерних узлов в дереве Типы проектов за иерархией папок в папках Шаблоны проекта. Для шаблонов компьютера (Установленные шаблоны Visual Studio), типичное расположение \ program files \ Microsoft Visual Studio 10,0 \ Common7 \ ide \ Шаблоны проекта \ и для шаблонов пользователя (Мои шаблоны), типичное расположение \ Мои документы \ Visual Studio 10 \ templates \ Шаблоны проекта \. Иерархии папок из этих 2 расположений объединяются для создания дерева Типы проектов.

Для Visual Studio с параметрами разработчика Visual C++ дерево Типы проектов выглядит примерно так:

Типы проектов

Соответствующую папку Шаблоны проекта выглядит следующим образом:

Шаблоны проектов

При первом открытии диалогового окна Создать проект, Visual Studio траверсируют папку Шаблоны проекта и повторно создает свою структуру дерева Типы проектов с некоторыми изменениями:

  • Корневой узел дерева Типы проектов определяется шаблоном приложения.

  • Имя узла можно локализовать и может содержать специальные символы.

  • Порядок сортировки может быть изменен.

Найти корневой узел для типа проекта

При Visual Studio траверсирует папки Шаблоны проекта он открывает все zip-файлы и выделяет все файлы с расширением vstemplate. Файл с расширением vstemplate XML используется для описания шаблон приложения. Дополнительные сведения см. в разделе Создание нового проекта: В капотом, часть 2.

Тег <ProjectType> указывает тип проекта для приложения. Например, \ \ файл CSharp SmartDevice \ WindowsCE \ 1033 \ WindowsCE-EmptyProject.zip содержит файл EmptyProject.vstemplate, которому принадлежит данный тег:

<ProjectType>CSharp</ProjectType>

Тег <ProjectType> и не вложенная в папку Шаблоны проекта, определяющие корневой узел в дереве Типы проектов приложения. В примере приложения Windows CE появились бы в корневой узел Visual C# и даже если перемещение папки WindowsCE в папке Visual Basic для приложений Windows CE также появились бы в корневой узел Visual C#.

Локализация имя узла

Когда Visual Studio траверсирует папки Шаблоны проекта, он проверяет все файлы .vstdir он обнаруживает. Файл .vstdir XML-файл, который управляет представление типа проекта в диалоговом окне Создать проект. В файле .vstdir, используйте тег <LocalizedName> для именования узел Типы проектов.

Например, файл CSharp \ \ databases \ TemplateIndex.vstdir содержащий этот тег:

<LocalizedName Package="{462b036f-7349-4835-9e21-bec60e989b9c}" ID="4598"/>

Это указывает идентификатор вспомогательной библиотеки DLL и ресурсов локализованной строки, имена корневой узел, в этом случае База данных. Локализованное имя может содержать специальные символы, которые недоступны в именах папок, например .NET.

Если тег <LocalizedName> отсутствует, то тип проекта назван самой папке, SmartPhone2003.

Найти порядок сортировки для типов проектов

Чтобы указать порядок сортировки типа проекта, файлы .vstdir используют тега <SortOrder>.

Например, \ \ windows \ Windows.vstdir файл CSharp содержащий этот тег:

<SortOrder>5</SortOrder>

Файл \ CSharp \ databases \ TemplateIndex.vstdir имеет тега с большим значением.

<SortOrder>5000</SortOrder>

Чем ниже число в теге <SortOrder>, чем выше позиция в дереве узлов, поэтому появится Окна выше, чем узлы База данных в дереве Типы проектов.

Если тег <SortOrder> не определен для типа проекта, он отображается в алфавитном порядке после всех типов проектов, содержащие спецификации <SortOrder>.

Обратите внимание, что файлы .vstdir в папках " Мои документы " (Мои шаблоны). Имена типов проекта приложения пользователя не локализуются и не отображаются в алфавитном порядке.

Быстрый анализ

Let - нам внести изменения в диалоговом окне Создать проект и создать новый шаблон проекта пользователя.

  1. Добавьте вложенную папку MyProjectNode к программным файлам \ program files \ Microsoft Visual Studio 10 \ Common7 \ ide \ папку Шаблоны проекта \ CSharp.

  2. Создайте файл MyProject.vstdir в папке MyProjectNode, используя любой текстовый редактор.

  3. Добавьте эти линии к файлу .vstdir:

    <TemplateDir Version="1.0.0">
        <SortOrder>6</SortOrder>
    </TemplateDir>
    
  4. Сохраните файл и закройте .vstdir.

  5. Создайте файл MyProject.vstemplate в папке MyProjectNode, используя любой текстовый редактор.

  6. Добавьте эти линии к vstemplate-файлу.

    <VSTemplate Version="2.0.0" Type="Project" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
        <TemplateData>
            <ProjectType>CSharp</ProjectType>
        </TemplateData>
    </VSTemplate>
    
  7. Сохраните файл и закройте редактор the.vstemplate.

  8. Отправьте файл vstemplate в новой сжатой папке MyProjectNode \ MyProject.zip.

  9. В окне команд Visual Studio, введите:

    devenv /installvstemplates
    

Запустите Visual Studio.

  1. Открыть диалоговое окно " Создать проект и разверните узел проекта Visual C#.

MyProjectNode

MyProjectNode отображается как дочерний узел Visual C# просто под узлом windows.

См. также

Основные понятия

Создание нового проекта: В капотом, часть 2