2

我有一个用例,我需要添加有关创建当前发布事务的用户的信息(不仅仅是他们的用户名,我还需要组成员身份和其他一些详细信息)并将其传递给部署者扩展。

发布时,使用以下代码相对容易

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

您可能会注意到,“AddInstruction”这个方法仅适用于“RenderedItem”,但Unpublish指令不会呈现项目,因此我不能使用相同的技术。

在生成包清单时(例如在自定义解析器中),如果不破解文件系统中的包清单,您将如何解决这个要求?

4

2 回答 2

5

您是否有更多关于您需要在 Deployer 中如何处理这些信息的信息。是否可以选择在事件处理程序发生后捕获取消发布操作,然后创建第二个发布操作,将消息与附加信息一起发送到部署程序?(我知道这意味着 2 次往返,但目前我想不出另一种方法)。自 R4 以来,取消发布操作一直有点棘手,早在 R3 中,我们实际上有在取消发布阶段由模板执行的代码(尽管当时都是 Perl)。

于 2012-02-18T18:06:51.143 回答
2

我想知道这是否是缺少的可扩展点。毕竟,我明白您为什么要通过取消发布来传输额外的数据。所以首先,我建议一个增强请求,添加一些功能来支持这个用例。

谈到你的问题......如何在不破解包的情况下实现某些东西。也许您可以通过另一种机制提供信息。例如,您可以编写一个在内容管理器上运行的 Web 服务,并在查询给定的发布事务 ID 时提供数据。

于 2012-02-18T16:26:13.973 回答