可替换参数在SharePoint和VS中的使用

  什么是可替换参数呢?你可能会在代码里看到像$SharePoint.Project.AssemblyFullName$一样的标记。VS会在编译的时候用完整的签名来替换相应参数。例如,标记 $SharePoint.Package.Name$ 可能会解析为字符串“Test SharePoint Package”。

  标记规则:

  • 可以在行中的任意位置指定标记。
  • 标记不能跨多个行。
  • 可以在同一行上和同一文件中多次指定同一标记。
  • 可以在同一行上指定不同的标。

  不遵循上述规则的标记将被忽略,而不提供警告或错误。

  在清单转换之后立即用字符串值替换标记,从而允许用户编辑的清单模板使用标记。

下表列出了可用的标记

名称

说明

$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-xxxxxxxxxxxx)对应。

$SharePoint.Type.<GUID>.FullName$

与标记中的 GUID 匹配的类型的全名。 GUID 的格式为小写,并与 Guid.ToString("D") 格式(即 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)对应。

  默认情况下VS查找这些标记在包文件、清单文件和以下扩展名的文件:

  XML

  ASCX

  ASPX

  Webpart

  DWP(DWP文件为主要与primarily SharePoint Portal Server Dashboard Web Part File (Microsoft Corporation)相关联的游戏文件)

这些扩展名被定义在$ProgramFiles$\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools文件夹下的Microsoft.VisualStudio.SharePoint.targets文件的<TokenReplacementFileExtensions>元素里。

  你可以添加元素到这个列表里,如<TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>。

  这就是为什么我们在SharePoint里添加ashx(一般处理程序)时,需要在项目文件的PropertyGroup结点下添加<TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>才能正确调用的原因。

posted @ 2015-09-11 13:35  波谷  阅读(452)  评论(0编辑  收藏  举报