Session.Message não mostrando mensagem pop-up na tela de instalação do produto
Eu tenho uma classe customActions:
public static ActionResult Register(Session session)
{
try
{
Do SOmething
}
catch (Exception ex)
when (ExceptionManager.catchGenericExcetion(ex))
{
var responseMessage =ex.ResponseMessage;
if (responseMessage.Contains("Maximum apps created"))
{
session.Log("maximum limit reached");
using Record record = new Record(0);
record[0] = "This is an error!Max apps reached";
session.Message(InstallMessage.Error, record);
}
return ActionResult.Failure;
}
return ActionResult.Success;
}
}
Aqui, minha IU não mostra nenhum pop-up correspondente a session.Message (InstallMessage.Error, record); Porém, nos logs do MSI, vejo a mensagem impressa: limite máximo atingido
MSI (s) (30!F4) [21:26:05:047]: Product: MyApp -- This is an error!Max apps reached
Alguém pode ajudar porque não consigo ver esta mensagem na IU? Quero que seja exibido na IU para o usuário final durante o processo de instalação.
Respostas
Mensagem de depuração ou lançamento : Não tenho certeza do que você realmente precisa - você está apenas depurando ou deseja mostrar algo interativamente durante a instalação para usuários finais reais?
Depuração : Se você estiver depurando: Anexe o depurador à sua ação personalizada depois de mostrar uma caixa de mensagem da ação personalizada como abaixo. Em seguida, você pode percorrer o código corretamente - vídeo para uma demonstração rápida (talvez isso já esteja funcionando para você):
using System.Windows.Forms;
<..>
[CustomAction]
public static ActionResult TestCustomAction(Session session)
{
MessageBox.Show("Hello from TestCustomAction");
return ActionResult.Success;
}
Session.Message : Eu realmente não usei esse conceito (gosto de colocar informações no log em vez de exibir para os usuários finais), mas descobri que funcionou ( eliminado daqui -"prepared search"):
[CustomAction]
public static ActionResult TestCustomAction(Session session)
{
Record record = new Record(0);
record[0] = "This is an error! Max apps reached";
session.Message(InstallMessage.User | (InstallMessage)MessageButtons.OK | (InstallMessage)MessageIcon.Information, record);
return ActionResult.Success;
}