projeto .NET Deployment: ação personalizada que cancela desinstalador
-
22-07-2019 - |
Pergunta
Eu tenho um projeto de implantação .NET. Eu gostaria de adicionar uma ação de desinstalação personalizada que verifica certas condições e, opcionalmente, cancela a desinstalação. Isso é possível?
Tanto quanto eu descobri, é apenas possível definir ações personalizadas que não podem influenciar o próprio instalador principal.
Solução
A resposta é realmente muito fácil mas também muito feio.
No ponto na ação personalizada onde eu quero cancelar a desinstalação Acabei de jogar uma ApplicationException
:
//Nono. Don't uninstall. To abort uninstall, throw an exception
throw new ApplicationException(Constants.CONST_APP_NAME + @" can't be uninstalled because the preparation hasn't been completed.");
Outras dicas
Ele me surpreenderia se é possível. Na minha experiência, assim que você tentar usar o VS instalar projeto para fazer qualquer coisa que não pode ser drag'ndropped no designer, você está pedindo para ter problemas.
Em outras palavras, é uma porcaria, mas eu não sei se a grama é mais verde do outro lado (por exemplo, InstallShield), porque eu nunca usei isso.