我的Feature的Template.xml文件的1.0.0.0版本如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
<Properties>
<Property Key="AvailableWebTemplates" Value="MPS#0;MPS#1;MPS#2;MPS#3;MPS#4" />
</Properties>
</Feature>
新版本1.1.0.0如下:
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
<UpgradeActions>
<VersionRange BeginVersion="1.0.0.0" EndVersion="1.1.0.0">
<CustomUpgradeAction Name="UpgradeTo1v1"/>
</VersionRange>
</UpgradeActions>
<Properties>
<Property Key="AvailableWebTemplates" Value="MPS#0;MPS#1;MPS#2;MPS#3;MPS#4;STS#2" />
</Properties>
</Feature>
当以下代码在FeatureUpgrading中运行时,templates
的值仍为MPS#0;MPS#1;MPS#2;MPS#3;MPS#4
:
SPFeatureProperty property = properties.Feature.Properties["AvailableWebTemplates"];
string templates = property.Value;
为什么我没有获得更新的属性值?这是应该的样子吗?
答案 0 :(得分:0)
这确实是应该的方式: 一个功能有1个定义和n个实例。 FeatureUpgrading中的代码用于升级实例。
xml中的属性更新功能定义,而不是正在运行的实例。
properties.Feature.Properties["MyProp"]
获取正在运行的实例的属性值 properties.Definition.Properties["MyProp"]
获取功能定义中属性的值。