範本參數

將範本具現化時,您可以取代範本中的值。 若要設定這項功能,請使用「範本參數」。 範本參數可以用來取代範本中的值,例如類別名稱和命名空間。 當使用者新增項目或專案取代這些參數時,範本精靈會在背景中執行。

宣告和啟用範本參數

範本參數是以 $parameter$ 格式來宣告。 例如:

  • $rootnamespace$

  • $guid1$

  • $guid5$

啟用範本中的參數替換

  1. 在範本的 .vstemplate 檔案中,針對您要啟用參數取代的項目,找出對應的 ProjectItem 元素。

  2. ReplaceParameters 項目的 ProjectItem 屬性設定為 true

  3. 在適當時,於專案項目的程式碼檔案中納入參數。 例如,下列參數指定用於檔案中命名空間的根命名空間:

    namespace $rootnamespace$
    

保留的範本參數

下表列出可用於任何範本的保留範本參數:

參數 描述
clrversion 通用語言執行平台 (CLR) 的最新版本。
ext_* ext_ 前置詞新增至任何參數,以參考父代範本的變數。 例如: ext_safeprojectname
guid[1-10] GUID;用來取代專案檔中的專案 GUID。 您最多可以指定 10 個唯一的 GUID (例如,guid1)。
itemname 正在使用該參數的檔案名稱。
machinename 目前的電腦名稱 (例如,Computer01)。
projectname 建立專案時,使用者所提供的名稱。 這個參數只適用於專案範本。
registeredorganization 來自 HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 的登錄機碼值。
rootnamespace 目前專案的根命名空間,後面接著目前項目的子資料夾,以句點取代斜線。
defaultnamespace 目前專案的根命名空間。
safeitemname itemname 相同,但所有不安全的字元和空格都會以底線字元取代。
safeitemrootname safeitemname 相同。
safeprojectname 使用者在建立專案時時提供的名稱,但已移除所有不安全的字元和空格。 這個參數只適用於專案範本。
targetframeworkversion 目標 .NET Framework 的目前版本。
time 目前時間採用基於 Windows 使用者設定的格式。 其中一個時間格式範例為 DD/MM/YYYY 00:00:00。
specifiedsolutionname 解決方案的名稱。 若已核取 [建立方案目錄],則 specifiedsolutionname 具有方案名稱。 若未核取 [建立方案目錄],specifiedsolutionname 則為空白。
userdomain 目前的使用者網域。
username 目前的使用者名稱。
webnamespace 目前網站的名稱。 這個參數用於 Web 表單範本,以保證唯一的類別名稱。 如果網站位於 Web 伺服器的根目錄,此範本參數會解析為 Web 伺服器的根目錄。
year 目前的年份,格式為 YYYY。

注意

範本參數會區分大小寫。

自訂範本參數

除了參數取代期間所使用的預設保留範本參數之外,您也可以指定自己的範本參數和值。 如需詳細資訊,請參閱 CustomParameters 項目 (Visual Studio 範本)

範例:檔案名稱使用專案名稱

您可以在 TargetFileName 屬性中使用參數,來指定專案項目的變數檔案名稱。

下例會指定可執行檔的名稱使用 $projectname$ 所指定的專案名稱。

<TemplateContent>
    <ProjectItem
        ReplaceParameters="true"
        TargetFileName="$projectname$.exe">
            File1.exe
    </ProjectItem>
      ...
</TemplateContent>

範例:命名空間名稱使用安全的專案名稱

若要在 C# 類別檔案為命名空間使用安全的專案名稱,請使用下列語法:

namespace $safeprojectname$
{
    public class Class1
    {
        public Class1()
        { }
    }
}

當您參考檔案時,請在專案範本的 .vstemplate 檔案中,納入 ReplaceParameters="true" 屬性:

<TemplateContent>
    <ProjectItem ReplaceParameters="true">
        Class1.cs
    </ProjectItem>
    ...
</TemplateContent>

另請參閱