新的專案產生: 在幕後,第二部
在新專案產生: 在幕後,組件 1勒伯斯入口看到如何新的專案 ] 方塊中會填入的對話方塊。 假設您已選取視覺 C# Windows 應用程式、 填寫 名稱 和 位置文字] 方塊中,並按下 [確定]。
產生的方案檔
選擇應用程式樣板會指示Visual Studio解壓縮及開啟對應的.vstemplate 檔,並啟動來解譯 XML 指令,在這個檔案中的範本。 這些命令會建立新的或現有方案中專案和專案項目。
範本會解壓縮原始程式檔,從同一個.zip 資料夾存放的.vstemplate 檔呼叫項目範本。 範本會將這些檔案複製到新的專案,並據以自訂的方法。 了解專案範本和項目範本中,請參閱Visual Studio Templates。
範本參數取代
當範本複製到新的專案的項目範本時,它會取代任何的樣板參數來自訂檔案的字串。 範本參數是一個特別的語彙基元,前面加上錢幣符號,例如,$日期$。
讓我們來看一個典型的專案項目範本。 擷取,並檢查 Program.cs 程式必要的 Visual Studio 的 8\Common7\IDE\ProjectTemplates\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> 一節中新專案產生: 在幕後,組件 1。 本章節中的標記用來控制外觀的新的專案對話方塊。
在 <TemplateContent> 中的標籤 區段] 控制項產生新的專案和專案項目。 下面是 <TemplateContent> 從 \Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp\Windows\1033\WindowsApplication.zip 資料夾中的 cswindowsapplication.vstemplate 檔案的區段。
<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>
<Project> 標籤控制項的專案,以及 <ProjectItem> 產生 標籤控制項的專案項目產生。 如果 ReplaceParameters 的參數,則為 true,範本將會自訂專案檔或項目中所有的樣板參數。 在此情況下,所有的專案項目是,除了針對自訂 Settings.settings。
TargetFileName 參數會指定產生的專案檔案或項目的相對路徑與名稱。 這可讓您建立專案的資料夾結構。 如果您不指定此引數,則專案項目必須同名的專案項目範本。
產生的 Windows 應用程式資料夾結構看起來像這樣:
第一個和唯一 <Project> 在範本中的標籤如下:
<Project File="WindowsApplication.csproj" ReplaceParameters="true">
這會指示新的專案範本來建立複製,並自訂範本的項目 windowsapplication.csproj 的 Simple.csproj 專案檔。
設計工具和參考
您可以看到在 [方案總管] 中,[屬性] 資料夾存在,且包含預期的檔案。 但有關專案的項目會參考和設計工具檔案的相依性,例如 Resources.Designer.cs 到 Resources.resx,以及屬於 Form1.cs 的 Form1.Designer.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>
您所見這些是出現在 [方案總管] 中的六個專案參考。 以下是從另一個 <ItemGroup> 一節。 為了清楚起見,已被刪除的程式碼行數。 這個區段會使 Settings.Designer.cs Settings.settings 而定:
<ItemGroup>
<Compile Include="Properties\Settings.Designer.cs">
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>