共用方式為


可更換參數

可在專案檔案內使用可取代的參數或 權杖,為 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 專案的延伸模組清單,而不只是您自己的專案。 當您是系統上的唯一開發人員或您的大多數項目都需要它時,此擴展可能會很方便。 不過,由於它是系統特定的,因此此方法無法移植,因此建議您將任何延伸模組新增至專案檔。