¿Agregar información al manifiesto del paquete de transporte (instrucciones.xml) al no publicar algún artículo?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Tengo un caso de uso en el que necesito agregar información sobre el usuario que creó la transacción de publicación actual (más que solo su nombre de usuario, también necesito membresías del grupo y algunos otros detalles) y pasarla a una extensión del implementador.

Al publicar esto es relativamente fácil de hacer con el siguiente código

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

Como puede notar, este método "AddInstruction" solo está disponible para un "rendereditem", pero Inútil Las instrucciones no representan elementos y, por lo tanto, no puedo usar la misma técnica.

A falta de piratear el paquete manifiesto en el sistema de archivos al generarlo (por ejemplo, en un resolución personalizado), ¿cómo abordaría este requisito?

¿Fue útil?

Solución

¿Tiene más información sobre lo que necesita hacer con esta información en el implementador? ¿Sería una opción capturar la acción no publicitaria después de que ocurra con un controlador de eventos y luego crear una segunda acción de publicación que envíe el mensaje al implementador con la información adicional? (Sé que eso significa 2 viajes redondos, pero no puedo pensar en otro enfoque en este momento). Las acciones no publicitarias han sido un poco complicadas desde R4, en R3 en realidad teníamos un código que fue ejecutado por plantillas en la fase inédita (aunque todo era Perl en ese entonces).

Otros consejos

Me pregunto si este es un punto de extensibilidad faltante. Después de todo, puedo ver por qué querrá transmitir datos adicionales con un inédito. Entonces, en primer lugar, sugeriría una solicitud de mejora para que se agregue alguna funcionalidad para respaldar este caso de uso.

Llegando al punto de su pregunta ... cómo implementar algo sin piratear el paquete. Quizás podría hacer que la información esté disponible a través de otro mecanismo. Por ejemplo, puede escribir un servicio web que se ejecute en el Administrador de contenido y que sirve los datos cuando se consulta para una ID de transacción de publicación dada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top