¿Cómo escribo DLL de acción personalizada para usar en un MSI?

Esta es una pregunta que tengo la intención de responder, pero no dude en agregar otras formas de lograrlo.

Estaba empaquetando una aplicación para usar en una amplia variedad de configuraciones, y determiné que la forma más confiable de realizar una lógica personalizada dentro de mi MSI sería escribir mi propia DLL de acción personalizada que pudiera leer / escribir desde la tabla de PROPIEDAD , elimine un proceso, determine si era necesario actualizar una aplicación (y luego registre la respuesta en la tabla PROPIEDAD) y escriba en el registro estándar de MSI.

Respuestas a la pregunta(1)

Su respuesta a la pregunta