Создание нового проекта: В капотом, часть 2
IN Создание нового проекта: В клобуком элемента, соответствует увидели бы как Создать проект диалоговое окно заполняется. Допустим, выбранных a Windows-приложения Visual c#, заполнянное Имя и Расположение текстовые поля и нажатие ОК.
Создание файлов решения
Выбор шаблона приложения направляет Visual Studio распаковать и открыть соответствующий файл с расширением vstemplate и запустить шаблон для интерпретации команды XML в данном файле. Эти команды создают проекты и элементы проекта в новом или существующем решении.
Шаблон распаковывает, вызываемые исходные файлы, шаблонами элементов из одной папки zip, содержащий файл vstemplate. Шаблон копирует эти файлы к новому проекту, их настройки. Обзор проекта и шаблонов элементов см. в разделе шаблоны Visual Studio.
Замена параметров шаблона
Если шаблон копирует шаблон элемента к новому проекту, он заменяет все параметры шаблона со строками настраивать файл. Параметр шаблона особый маркер, который предшествует и за которым следует знак доллара, например, $date$.
Let - нам выглядеть стандартный шаблон элемента проекта. Извлечение и просмотрите Program.cs в программных файлах \ Microsoft Visual Studio 8 \ Common7 \ ide \ папку Шаблоны проекта \ CSharp \ windows \ 1033 \ WindowsApplication.zip.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace $safeprojectname$
{
static class Program
{
// source code deleted here for brevity
}
}
Если создается новый проект с именем windows-приложения Простоем, то шаблон заменяет $safeprojectname$ параметр с именем проекта.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Simple
{
static class Program
{
// source code deleted here for brevity
}
}
Полный список параметров шаблона содержится в разделе Параметры шаблона.
Просмотрев внутри файла vstemplate
Файл с расширением vstemplate имеет следующий формат косточек чуть-чуть
<VSTemplate Version="2.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
</TemplateData>
<TemplateContent>
</TemplateContent>
</VSTemplate>
Мы посмотрели <TemplateData> раздел Создание нового проекта: В клобуком элемента, соответствует. Теги в этом разделе используются для наблюдения за внешний вид Создать проект диалоговое окно.
В теги <TemplateContent> управление раздела создание новых проектов и элементов проектов. Здесь <TemplateContent> раздел из файла cswindowsapplication.vstemplate в \ program files \ Microsoft Visual Studio 8 \ Common7 \ ide \ папку Шаблоны проекта \ CSharp \ windows \ 1033 \ WindowsApplication.zip.
<TemplateContent>
<Project File="WindowsApplication.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true"
TargetFileName="Properties\AssemblyInfo.cs">
AssemblyInfo.cs
</ProjectItem>
<ProjectItem TargetFileName="Properties\Resources.resx">
Resources.resx
</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\Resources.Designer.cs">
Resources.Designer.cs
</ProjectItem>
<ProjectItem TargetFileName="Properties\Settings.settings">
Settings.settings
</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\Settings.Designer.cs">
Settings.Designer.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true" OpenInEditor="true">
Form1.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true">
Form1.Designer.cs
</ProjectItem>
<ProjectItem ReplaceParameters="true">
Program.cs
</ProjectItem>
</Project>
</TemplateContent>
<Проект> тег контролирует создание проекта. <ProjectItem> тег контролирует создание элемента проекта. ReplaceParameters если параметр имеет значение true, то шаблон настраивает все параметры шаблона в файле проекта или элемента. В этом случае все элементы проекта настраиваются, за исключением Settings.settings.
Параметр TargetFileName задает имя и относительный путь к результирующему файлу проекта или элемента. Это позволяет создать структуру папок проекта. Если не указать этот аргумент, то элемент проекта будет иметь то же имя, что и шаблон элемента проекта.
Результирующая структура папок windows-приложения выглядит следующим образом:
Первое, а лишь <Проект> тег в шаблоне считывает:
<Project File="WindowsApplication.csproj" ReplaceParameters="true">
Это заставляет новый шаблон проекта создать файл проекта Simple.csproj путем копирования и настраивать элемент windowsapplication.csproj шаблона.
Конструкторы и ссылки
Можно видеть, что в обозревателе решений папку свойства присутствуют и содержит требуемые файлы. Но о ссылках проекта и зависимости файла конструктора, например Resources.Designer.cs к Resources.resx, и Form1.Designer.cs на Form1.cs? Эти установки в файле Simple.csproj, когда он создается.
Здесь <ItemGroup> из Simple.csproj, которое создает ссылки проекта:
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
Можно увидеть, что эти 6 ссылок на проекты, которые отображаются в обозревателе решений. Здесь раздел от других <ItemGroup>. Много строк кода были удалены для наглядности. Этот раздел позволяет зависимую ячейку Settings.Designer.cs на Settings.settings:
<ItemGroup>
<Compile Include="Properties\Settings.Designer.cs">
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
См. также
Основные понятия
Создание нового проекта: В клобуком элемента, соответствует