Поделиться через


Заменяемые параметры

Заменяемые параметры или маркеры можно использовать в файлах проекта для предоставления значений для элементов решения SharePoint, фактические значения которых не известны во время разработки. Они похожи на стандартные маркеры шаблонов Visual Studio. Дополнительные сведения см. в разделе "Параметры шаблона".

Формат токенов

Маркеры начинаются и заканчиваются символом знака доллара ($). При развертывании все используемые маркеры заменяются фактическими значениями, когда проект упаковываются в пакет решения SharePoint (WSP-файл ). Например, токен $SharePoint.Package.Name$ может разрешиться в строку "Тестовый пакет SharePoint".

Правила маркера

Следующие правила применяются к маркерам:

  • Маркеры можно указать в любом месте строки.

  • Маркеры не могут охватывать несколько строк.

  • Один и тот же маркер может быть указан несколько раз в одной строке и в одном файле.

  • Разные маркеры могут быть указаны в одной строке.

    Маркеры, которые не соответствуют этим правилам, игнорируются и не приводят к предупреждению или ошибке.

    Замена маркеров строковыми значениями выполняется сразу после преобразования манифеста. Эта замена позволяет пользователю изменять шаблоны манифеста с маркерами.

Разрешение имен маркера

В большинстве случаев маркер разрешает определенное значение независимо от того, где он содержится. Однако если маркер связан с пакетом или компонентом, значение маркера зависит от того, где он содержится. Например, если функция находится в пакете A, маркер $SharePoint.Package.Name$ разрешается в значение "Package 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$ Маркер открытого ключа выходной сборки проекта, преобразованный в строку. (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.Type.<GUID>. AssemblyQualifiedName$ Полное имя сборки типа, соответствующего GUID маркера. Формат GUID является строчным и соответствует формату Guid.ToString("D") (то есть xxxx-xxxxx-xxxx).
$SharePoint.Type.<GUID>. FullName$ Полное имя типа, соответствующего GUID в маркере. Формат GUID является строчным и соответствует формату Guid.ToString("D") (то есть xxxx-xxxxx-xxxx).

Добавление расширений в список расширений файла замены маркера

Хотя маркеры могут теоретически использоваться любым файлом, принадлежащим элементу проекта SharePoint, включенным в пакет, по умолчанию Visual Studio ищет маркеры только в файлах пакетов, файлах манифеста и файлах, имеющих следующие расширения:

  • XML

  • ASCX

  • ASPX

  • Webpart

  • DWP

    Эти расширения определяются элементом <TokenReplacementFileExtensions> в файле Microsoft.VisualStudio.SharePoint.targets, расположенном в папке ...\<program files>\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools.

    Однако в список можно добавить дополнительные расширения файлов. <TokenReplacementFileExtensions> Добавьте элемент в любой объект PropertyGroup в файл проекта SharePoint, определенный перед импортом <> целевого файла SharePoint.

Примечание.

Так как замена маркера происходит после компиляции проекта, не следует добавлять расширения файлов для типов файлов, скомпилированных, таких как 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, упакованных в локальную систему, а не только собственных. Это расширение может быть удобным, если вы являетесь единственным разработчиком в системе или если большинство проектов требуют его. Однако, так как он является системным, этот подход не переносим и поэтому рекомендуется добавлять расширения в файл проекта.