可置換的參數
可置換的參數或語彙基元,可以在專案檔內使用,為實際值在設計階段時未知的 SharePoint 解決方案項目提供值。 其功能類似於標準 Visual Studio 範本語彙基元。 如需詳細資訊,請參閱範本參數。
語彙基元格式
語彙基元會以貨幣符號 ($) 字元開頭和結尾。 在部署時,當專案封裝到 SharePoint 解決方案套件時,使用的任何語彙基元都會取代為實際值 (.wsp 檔案)。 例如,語彙基元 $SharePoint.Package.Name$ 可能會解析為字串 "Test SharePoint Package"。
語彙基元規則
下列規則適用於語彙基元:
您可以在行中的任何位置指定語彙基元。
語彙基元無法跨越多行。
相同語彙基元可以在同一行上和相同檔案中指定多次。
不同的語彙基元可以在同一行上指定。
未遵循這些規則的語彙基元會被忽略,而且不會產生警告或錯誤。
字串值取代語彙基元會在資訊清單轉換之後立即完成。 此取代可讓使用者使用語彙基元編輯資訊清單範本。
語彙基元名稱解析
在大部分情況下,不論其包含位置為何,語彙基元都會解析為特定值。 不過,如果語彙基元與封裝或功能相關,語彙基元的值取決於其包含的位置。 例如,如果功能位於套件 A 中,則語彙基元 $SharePoint.Package.Name$
會解析為「套件 A」值。如果相同的功能位於套件 B 中,則 $SharePoint.Package.Name$
會解析為「套件 B」。
語彙基元清單
下表列出可用的語彙基元。
名稱 | 描述 |
---|---|
$SharePoint.Project.FileName$ | 包含專案檔的名稱,例如 NewProj.csproj。 |
$SharePoint.Project.FileNameWithoutExtension$ | 包含專案檔的名稱,不包括副檔名。 例如,"NewProj"。 |
$SharePoint.Project.AssemblyFullName$ | 包含專案輸出組件的顯示名稱 (強式名稱)。 |
$SharePoint.Project.AssemblyFileName$ | 包含專案輸出組件的名稱。 |
$SharePoint.Project.AssemblyFileNameWithoutExtension$ | 包含專案輸出組件的名稱,不包括副檔名。 |
$SharePoint.Project.AssemblyPublicKeyToken$ | 包含專案輸出組件的公開金鑰語彙基元,已轉換成字串。 ("x2" 十六進位格式的 16 個字元。) |
$SharePoint.Package.Name$ | 包含套件的名稱。 |
$SharePoint.Package.FileName$ | 包含套件定義檔的名稱。 |
$SharePoint.Package.FileNameWithoutExtension$ | 包含套件定義檔的名稱 (不包括副檔名)。 |
$SharePoint.Package.Id$ | 包含套件的 SharePoint 識別碼。 如果某個功能在一個以上的套件中使用,則此值將會變更。 |
$SharePoint.Feature.FileName$ | 包含功能的定義檔名稱,例如 Feature1.feature。 |
$SharePoint.Feature.FileNameWithoutExtension$ | 功能定義檔的名稱,不包括副檔名。 |
$SharePoint.Feature.DeploymentPath$ | 包含套件中功能的資料夾名稱。 此語彙基元相當於功能設計工具中的「部署路徑」屬性。 範例值為 "Project1_Feature1"。 |
$SharePoint.Feature.Id$ | 包含功能的 SharePoint 識別碼。 此語彙基元與所有功能層級語彙基元一樣,只能由透過功能包含在套件中的檔案使用,而不會直接新增至功能外部的套件。 |
$SharePoint.ProjectItem.Name$ | 從 ISharePointProjectItem.Name 取得的專案項目名稱 (而非其檔案名稱)。 |
$SharePoint.Type.<GUID>.AssemblyQualifiedName$ | 符合語彙基元的 GUID 之類型的組件限定名稱。 GUID 的格式為小寫且對應於 Guid.ToString("D") 格式 (也就是 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。 |
$SharePoint.Type.<GUID>.FullName$ | 符合語彙基元中 GUID 之類型的完整名稱。 GUID 的格式為小寫且對應於 Guid.ToString("D") 格式 (也就是 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。 |
將延伸模組新增至語彙基元取代副檔名清單
雖然語彙基元理論上可供任何屬於套件內含 SharePoint 專案項目的檔案使用,但是根據預設,Visual Studio 只會在套件檔案、資訊清單檔案和具有下列副檔名的檔案中搜尋語彙基元:
XML
ASCX
ASPX
Webpart
DWP
這些副檔名是由 Microsoft.VisualStudio.SharePoint.targets 檔案中的
<TokenReplacementFileExtensions>
元素定義,此檔案位於 ...\<program files>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools 資料夾中。不過,您可以將其他副檔名新增至清單。 請將
<TokenReplacementFileExtensions>
元素新增至 SharePoint 專案檔中,定義於 SharePoint 目標檔 <Import> 之前的任何 PropertyGroup 中。
注意
由於語彙基元取代會在編譯專案之後發生,因此您不應該為編譯的檔案類型新增副檔名,例如 .cs、.vb 或 .resx。 語彙基元只會在未編譯的檔案中取代。
例如,若要將副檔名 (.myextension 和 .yourextension) 新增至語彙基元取代副檔名清單,您要將下列內容新增至專案 (.csproj) 檔案:
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
.
.
.
<!-- Define the following property to add your extension to the list of token replacement file extensions. -->
<TokenReplacementFileExtensions>myextension;yourextension</TokenReplacementFileExtensions>
</PropertyGroup>
您可以將副檔名直接新增至目標 (.targets) 檔案。 不過,新增延伸模組會改變本機系統上封裝之所有 SharePoint 專案的延伸模組清單,而不只是您自己的專案。 當您是系統上的唯一開發人員,或大部分專案需要時,此延伸模組可能會很方便。 不過,由於它是系統特定的,所以此方法不可移植,因此,建議您改為將任何延伸模組新增至專案檔。