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