0
私の機能のtemplate.xmlファイルの1.0.0.0バージョンこのように見えた:次のようにFeatureUpgradingは最新のプロパティ値を使用する予定ですか?
<?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>
templates
の値は、まだMPS#0;MPS#1;MPS#2;MPS#3;MPS#4
ですFeatureUpgradingで次のコードが実行されたとき:
SPFeatureProperty property = properties.Feature.Properties["AvailableWebTemplates"];
string templates = property.Value;
なぜ更新されたプロパティ値が得られませんか?これはそうなるのでしょうか?
興味深い。ですから、これはFeatureUpgradedではなくFeatureUpgradingなので、インスタンスを定義と比較して何が違うのかを見ることができます。 私が最初にこれを動作させたのは、CustomUpgradeActionにParametersセクションを追加することでした。私はそれが好きかどうかを決めていない。私は複数のバージョンがある場合、パラメータに値を持たせることで、フィーチャーがどのようにアップグレードされたかの履歴がわかります。しかし、私はすでに私にそれを教えるソースコントロールを持っているので、私はそれを持ち出してプロパティと一緒に行くと思う。定義。ありがとう! –