バージョンアップ方法SPItemEventReceiver組み立てバージョン一覧SharePoint?

StackOverflow https://stackoverflow.com/questions/382535

  •  23-08-2019
  •  | 
  •  

質問

まSPItemEventReceiverめ、独自の。

しSTSDevパッケージッド溶液にこのEventReceiverとしての特徴です。私は人に提供SPItemEventReceiver特定のListTemplateId内elements.xmlが、amの代わりに本サイトにリンクReceiverAssemblyのfeature.xml とprogrammaticalyに割り当SPItemEventReceiver複数のSPListます。

    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        foreach (SPWeb web in site.AllWebs)
        {
            SPListCollection webListCollection = web.Lists;

            foreach (SPList myList in webListCollection)
            {
                if (myList.Title == "Lab Reports")
                {
                    SPEventReceiverDefinitionCollection receivers = myList.EventReceivers;
                    SPEventReceiverDefinition receiver = receivers.Add();
                    receiver.Name = "PostUpdateLabReport";
                    receiver.Assembly = "LabReportEventHandlers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111";
                    receiver.Class = "LabReportEventHandlers.LabReportsHandler";
                    receiver.Type = SPEventReceiverType.ItemUpdated;
                    receiver.Update();
                    break;
                }
            }

            web.Dispose();
        }
    }

を使用していFeatureDeactivatingいは逆に上記のコードを削除しEventReceiverからのリストが表示されます。

質問

どのように管理すればよい今後のイベントがLabReportEventHandlersの更新および、バージョン。

これらのオプションIを考えることができる:

  1. 無効化/再有効化機能--いいラップを更新しまdll、SharePointソリューションファイルの変更上記コードに反映する新しいバージョン、使用stsadminアップソリューションとなります。私はその無効化/再有効化の特徴です。

  2. 追加組み立てリダイレクトします。config.

  3. なバンプをLabReportEventHandlersバージョン番号を示します。

ものがあるのか、それは何なのかの解版ますか?

さんいらっしゃるかと思い問題の3つのオプション:

  1. 後のライセンス認証解除の機能は、誰かが更新前にできるreactiave.

  2. いない編集を行います。config手く混雑して待たされること、sharepointのAPIです。がい施設まで格安料金プランをコードについて教えてください。

  3. こはだの違いが簡単です。

役に立ちましたか?

解決

たぶん、あなたは参照して、イベントハンドラで使用されている別のアセンブリ、に変更しやすいロジックをカプセル化することができます。この方法では、イベントハンドラ自体は変更されませんあなただけの適切な(IES)GACまたはbinディレクトリに更新され、「ロジック」アセンブリを配置でしょう、変更する必要があります。

HTH、 JT

他のヒント

私はあなたが新しいイベントハンドラが古いリストにまたはちょうど新しいリストに適用するかどうか、アップグレードをしたいのかわからないのです。

はちょうど新しいリストをアップグレードするために、あなたのFeatureActivated方法でそのファイルを読み込み、別のファイルにアセンブリ情報を入れて、新しい値を適用することができます。アップグレードする場合は、あなたがする必要があるすべては、別の設定ファイルを更新することで、新たな活性化は、新しい値とバージョン番号を使用します。

古いイベントハンドラをアップグレードする必要がある場合は、同様の手順を行うことができますが、古いものを削除する前に、新しい機能レシーバーを追加します。あなたが同じ方法でこれを行う場合は、新しいハンドラを追加し、古いものを削除するまでの時間は最小限になり、その正確な時間にアイテムを追加誰のチャンスはゼロに近いです。あなたがゼロにすべての道を行くしたい場合は、リストを非表示にしたり、アップグレードが進行中であり、かどうかを確認し、追加ItemUpdatedイベントハンドラを持つことができるので、更新を停止します。

だから、要するに: 新しいリストでは、外部ファイルからアセンブリの設定を読みます 古いリストでは、単に古いハンドラを削除する前に、アップグレードされたアセンブリ情報を追加します。

.B

実行されるアセンブリの両方(新旧)バージョンの必要性があるかどう

私だけのアセンブリのバージョンを使用しています。私は、イベントの受信機でこれを必要としません。したがって、私は、イベントレシーバ用アセンブリのバージョンを変更しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top