次の方法で共有


置換可能なパラメーター

置換可能なパラメーター ( トークン) をプロジェクト ファイル内で使用して、デザイン時に実際の値が不明な SharePoint ソリューション項目の値を提供できます。 これらは、関数内で標準の Visual Studio テンプレート トークンに似ています。 詳細については、「 テンプレート パラメーター」を参照してください。

トークンの形式

トークンの先頭と末尾はドル記号 ($) 文字です。 展開時に、使用されるトークンは、プロジェクトが SharePoint ソリューション パッケージ (.wsp ファイル) にパッケージ化されるときに、実際の値に置き換えられます。 たとえば、トークン $SharePoint.Package.Name$ は文字列 "Test SharePoint Package" に解決される場合があります。

トークン ルール

トークンには次の規則が適用されます。

  • トークンは、1 行の任意の場所で指定できます。

  • トークンは複数行にまたがることはできません。

  • 同じ行と同じファイルで、同じトークンを複数回指定できます。

  • 同じ行に異なるトークンを指定できます。

    これらの規則に従わないトークンは無視され、警告やエラーは発生しません。

    文字列値によるトークンの置換は、マニフェスト変換の直後に行われます。 この置換により、ユーザーはトークンを使用してマニフェスト テンプレートを編集できます。

トークンの名前解決

ほとんどの場合、トークンは、格納されている場所に関係なく、特定の値に解決されます。 ただし、トークンがパッケージまたは機能に関連付けられている場合、トークンの値は、トークンの格納場所によって異なります。 たとえば、機能がパッケージ A にある場合、トークン $SharePoint.Package.Name$ は値 "Package 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$ 含むプロジェクトの出力アセンブリの公開キー トークンを文字列に変換したもの。 ("x2" 16 進数形式の 16 文字。
$SharePoint.Package.Name$ 含まれているパッケージの名前。
$SharePoint.Package.FileName$ 含まれているパッケージの定義ファイルの名前。
$SharePoint.Package.FileNameWithoutExtension$ 含まれているパッケージの定義ファイルの名前 (拡張子なし)。
$SharePoint.Package.Id$ 含まれているパッケージの SharePoint ID。 機能が複数のパッケージで使用されている場合、この値は変更されます。
$SharePoint.Feature.FileName$ Feature1.feature など、含まれるフィーチャーの定義ファイルの名前。
$SharePoint.Feature.FileNameWithoutExtension$ 機能定義ファイルの名前 (ファイル名拡張子なし)。
$SharePoint.Feature.DeploymentPath$ パッケージ内の機能を含むフォルダーの名前。 このトークンは、フィーチャー デザイナーの "配置パス" プロパティに相当します。 値の例として、"Project1_Feature1" があります。
$SharePoint.Feature.Id$ 含まれる機能の SharePoint ID。 このトークンは、すべての機能レベルのトークンと同様に、機能を介してパッケージに含まれるファイルでのみ使用でき、機能外のパッケージには直接追加されません。
$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

  • Web パーツ

  • DWP

    これらの拡張機能は、...\<TokenReplacementFileExtensions>program ファイル<\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools フォルダーにある Microsoft.VisualStudio.SharePoint.targets ファイルの>要素によって定義されます。

    ただし、一覧にファイル拡張子を追加することはできます。 SharePoint ターゲット ファイルの <TokenReplacementFileExtensions>Import< の前に定義されている 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 (.targets) ファイルに直接追加できます。 ただし、拡張機能を追加すると、独自のプロジェクトだけでなく、ローカル システムにパッケージ化されたすべての SharePoint プロジェクトの拡張機能リストが変更されます。 この拡張機能は、システムの唯一の開発者である場合や、ほとんどのプロジェクトで必要な場合に便利です。 ただし、システム固有であるため、この方法は移植可能ではないため、代わりにプロジェクト ファイルに拡張機能を追加することをお勧めします。