可在專案檔案內使用可取代的參數或 權杖,為 SharePoint 解決方案專案提供值,其實際值在設計階段未知。 它們的功能類似於標準 Visual Studio 範本權杖。 如需詳細資訊,請參閱範本 參數。
令牌格式
代幣以美元符號 ($) 字元開頭和結尾。 部署時,將專案封裝成 SharePoint 解決方案套件(.wsp 檔案)時,使用的任何符號都會替換為實際值。 例如,代幣 $SharePoint.Package.Name$ 可能會解析為字串「Test SharePoint Package」。
代幣規則
以下規則適用於代幣:
記號可以在行中的任何位置指定。
標記不能跨越多行。
相同的記號可以在同一行和相同的檔案中多次指定。
可以在同一行上指定不同的記號。
不遵循這些規則的令牌會被忽略,並且不會導致警告或錯誤。
在資訊清單轉換後,將標記立即替換為字串值。 此取代可讓使用者使用代幣編輯資訊清單範本。
令牌名稱解析
在大多數情況下,令牌會解析為特定的值,無論它被包含在哪裡。 但是,如果權杖與套件或功能相關,則權杖的價值取決於它包含的位置。 例如,如果功能位於套件 A 中,則權杖 $SharePoint.Package.Name$ 會解析為值「套件 A」。如果套件 B 中存在相同的功能, $SharePoint.Package.Name$ 則解析為「套件 B」。
令牌清單
以下表列出可用的令牌。
| 名稱 | Description |
|---|---|
| $SharePoint.Project.FileName$ | 包含專案檔的名稱,例如 NewProj.csproj。 |
| $SharePoint.Project.FileNameWithoutExtension$ | 不含副檔名的專案檔案名稱。 例如,“NewProj”。 |
| $SharePoint.Project.AssemblyFullName$ | 包含專案輸出元件的顯示名稱 (強式名稱)。 |
| $SharePoint.Project.AssemblyFileName$ | 包含專案輸出元件的名稱。 |
| $SharePoint.Project.AssemblyFileNameWithoutExtension$ | 包含專案的輸出元件名稱,不包括檔案副檔名。 |
| $SharePoint.Project.AssemblyPublicKeyToken$ | 包含專案輸出組件的公開金鑰權杖,轉換成字串。 (16 個字元,「x2」十六進位格式。 |
| $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.類型.<GUID>.AssemblyQualifiedName$ | 符合權杖 GUID 的類型所對應之組件限定名稱。 GUID 的格式是小寫,並對應至 Guid.ToString(“D”) 格式 (也就是 xxxxxxxx-xxxx-xxxx-xxxx-xxxx) 。 |
| $SharePoint.Type.<GUID>.FullName$ | 權杖中與 GUID 匹配的類型完整名稱。 GUID 的格式是小寫,並對應至 Guid.ToString(“D”) 格式 (也就是 xxxxxxxx-xxxx-xxxx-xxxx-xxxx) 。 |
將副檔名新增至標識替換的副檔名清單
雖然理論上套件中所包含的任何 SharePoint 專案項目的檔案都可以使用代碼,但預設情況下,Visual Studio 只會在套件檔案、資訊清單檔案以及具有下列副檔名的檔案中搜尋代碼:
XML
ASCX
ASPX
網頁元件
DWP
這些延伸模組是由 Microsoft.VisualStudio.SharePoint.targets 檔案中的元素所
<TokenReplacementFileExtensions>定義,該檔案位於 ...\<program files>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools 資料夾中。不過,您可以將其他副檔名新增至清單。 在匯入<SharePoint 目標檔案之前,將
<TokenReplacementFileExtensions>元素新增至 SharePoint 專案檔中任何已定義的 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 專案的延伸模組清單,而不只是您自己的專案。 當您是系統上的唯一開發人員或您的大多數項目都需要它時,此擴展可能會很方便。 不過,由於它是系統特定的,因此此方法無法移植,因此建議您將任何延伸模組新增至專案檔。