共用方式為


新的專案產生: 在幕後,第二部

新專案產生: 在幕後,組件 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 應用程式資料夾結構看起來像這樣:

SimpleSolution

第一個和唯一 <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>

請參閱

概念

新專案產生: 在幕後,組件 1

其他資源

MSBuild