다음을 통해 공유


대체 가능 매개 변수

대체 가능 매개 변수 또는 “토큰”은 프로젝트 파일에서 디자인 타임에 실제 값이 알려지지 않은 SharePoint 솔루션 항목에 대한 값을 제공하는 데 사용할 수 있습니다. 이는 기능적으로 표준 Visual Studio 템플릿 토큰과 유사합니다. 자세한 내용은 템플릿 매개 변수를 참조하세요.

토큰 형식

토큰은 달러 기호($) 문자로 시작하고 끝납니다. 배포 시 프로젝트를 SharePoint 솔루션 패키지(.wsp 파일)로 패키지할 때 사용된 모든 토큰이 실제 값으로 바뀝니다. 예를 들어 토큰 $SharePoint.Package.Name$은 "테스트 SharePoint 패키지" 문자열로 확인될 수 있습니다.

토큰 규칙

다음 규칙이 토큰에 적용됩니다.

  • 토큰은 줄의 아무 곳에나 지정할 수 있습니다.

  • 토큰은 여러 줄에 걸칠 수 없습니다.

  • 동일한 토큰을 동일한 줄 및 동일한 파일에서 두 번 이상 지정할 수 있습니다.

  • 동일한 줄에 서로 다른 토큰을 지정할 수 있습니다.

    이러한 규칙을 따르지 않는 토큰은 무시되며 경고 또는 오류가 생성되지 않습니다.

    토큰에서 문자열 값으로 대체는 매니페스트 변환 직후에 수행됩니다. 이 대체를 통해 사용자는 토큰이 포함된 매니페스트 템플릿을 편집할 수 있습니다.

토큰 이름 확인

대부분의 경우 토큰은 포함된 위치에 관계 없이 특정 값으로 확인됩니다. 그러나 토큰이 패키지 또는 기능과 관련된 경우 토큰의 값은 포함된 위치에 따라 달라집니다. 예를 들어 기능이 패키지 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진수 형식의 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

  • Webpart

  • DWP

    이러한 확장명은 ...\<program files>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools 폴더에 있는 Microsoft.VisualStudio.SharePoint.targets 파일의 <TokenReplacementFileExtensions> 요소에 의해 정의됩니다.

    그러나 목록에 파일 확장명을 더 추가할 수 있습니다. SharePoint 대상 파일의 <Import> 앞에 정의된 SharePoint 프로젝트 파일에서 임의의 PropertyGroup에 <TokenReplacementFileExtensions> 요소를 추가합니다.

참고 항목

토큰 대체는 프로젝트 컴파일 후에 발생하므로 .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 프로젝트에 대한 확장 목록이 변경됩니다. 이 확장명은 사용자가 시스템의 유일한 개발자이거나 대부분의 프로젝트에 필요한 경우에 편리할 수 있습니다. 그러나 시스템에 특정하므로 이 방법은 이식성이 없습니다. 따라서 대신 프로젝트 파일에 확장명을 추가하는 것이 좋습니다.