2

現在の公開トランザクションを作成したユーザーに関する情報(ユーザー名だけでなく、グループメンバーシップやその他の詳細も必要)を追加して、デプロイヤー拡張機能に渡す必要があるユースケースがあります。

公開する場合、これは次のコードで比較的簡単に実行できます

engine.PublishingContext.RenderedItem.AddInstruction(
                                      InstructionScope.Global, instruction);

お気づきかもしれませんが、このメソッド「AddInstruction」は「RenderedItem」でのみ使用できますが、Unpublish命令ではアイテムがレンダリングされないため、同じ手法を使用できません。

パッケージマニフェストを生成するときに(たとえばカスタムリゾルバーで)ファイルシステムでハッキングする以外に、この要件にどのように対処しますか?

4

2 に答える 2

5

Deployer でこの情報を使用して何をする必要があるかについて、さらに詳しい情報はありますか。イベント ハンドラーで発生した非公開アクションをキャプチャし、追加情報と共にメッセージを Deployer に送信する 2 番目の公開アクションを作成するオプションはありますか? (これは 2 回の往復を意味することはわかっていますが、現時点では別のアプローチは考えられません)。R4 以降、非公開アクションは少しトリッキーでした。R3 では、非公開フェーズでテンプレートによって実行されるコードが実際にありました (当時はすべて Perl でしたが)。

于 2012-02-18T18:06:51.143 に答える
2

これは拡張性が欠けている点なのだろうか。結局のところ、非公開で追加のデータを送信したい理由がわかります。最初に、このユースケースをサポートするためにいくつかの機能を追加する機能強化リクエストをお勧めします。

あなたの質問のポイントに到達する...パッケージをハッキングせずに何かを実装する方法。おそらく、別のメカニズムを介して情報を利用できるようにすることができます。たとえば、コンテンツ マネージャーで実行され、特定のパブリッシュ トランザクション ID のクエリが実行されたときにデータを提供する Web サービスを作成できます。

于 2012-02-18T16:26:13.973 に答える