다음을 통해 공유


대체 가능한 매개 변수

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

토큰 형식

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

토큰 규칙

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

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

  • 토큰은 여러 줄로 확장할 수 없습니다.

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

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

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

    문자열 값으로 토큰을 교체하는 작업은 매니페스트 변환 직후에 수행됩니다. 이 대체를 사용하면 사용자가 토큰을 사용하여 매니페스트 템플릿을 편집할 수 있습니다.

토큰 이름 확인

대부분의 경우 토큰은 포함된 위치에 관계없이 특정 값으로 확인됩니다. 그러나 토큰이 패키지 또는 기능과 관련된 경우 토큰의 값은 포함된 위치에 따라 달라집니다. 예를 들어 기능이 패키지 A에 있는 경우 토큰 $SharePoint.Package.Name$ 은 "패키지 A" 값으로 확인됩니다. 동일한 기능이 패키지 B에 있는 경우 "패키지 B $SharePoint.Package.Name$ "로 확인됩니다.

토큰 목록

다음 표에서는 사용 가능한 토큰을 나열합니다.

이름 Description
$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 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-xxxxxxxxxxxxxx)에 해당합니다.
$SharePoint.Type.<GUID>.FullName$ 토큰에 있는 GUID와 일치하는 타입의 전체 이름입니다. GUID의 형식은 소문자이며 Guid.ToString("D") 형식(즉, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx)에 해당합니다.

토큰 대체 파일 확장자 목록에 확장 프로그램 추가

이론적으로는 패키지에 포함된 SharePoint 프로젝트 항목에 속하는 모든 파일에서 토큰을 사용할 수 있지만 기본적으로 Visual Studio는 패키지 파일, 매니페스트 파일 및 다음 확장명이 있는 파일에서만 토큰을 검색합니다.

  • XML

  • ASCX

  • ASPX

  • 웹 파트

  • DWP (주)

    이러한 확장은 Microsoft.VisualStudio.SharePoint.targets 파일의 <TokenReplacementFileExtensions> 요소에 의해 정의되며, 이는 ...\<Program Files>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools 폴더에 위치합니다.

    그러나 목록에 파일 확장자를 더 추가할 수 있습니다. <TokenReplacementFileExtensions> 요소를 SharePoint 대상 파일 <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) 파일에 직접 확장을 추가할 수 있습니다. 그러나 확장을 추가하면 사용자 고유의 확장이 아니라 로컬 시스템에 패키지된 모든 SharePoint 프로젝트의 확장 목록이 변경됩니다. 이 확장은 시스템의 유일한 개발자이거나 대부분의 프로젝트에서 필요한 경우 편리할 수 있습니다. 그러나 시스템별이므로 이 방법은 이식할 수 없으므로 프로젝트 파일에 확장을 추가하는 것이 좋습니다.