Hola.
1. No tengo mucho conocimiento del tema, pero tratare de orientarte.
2. Los custom actions son un proyecto del tipo
ClassLibrary
3. Este proyecto tiene una clase que hereda de
Installer, asi:
Código PHP:
[RunInstaller(true)]
public partial class InstallerManager : Installer
{
//Aqui eventos y metodos
}
4. Entre los eventos ahí unos que se ejecutan en Antes, Durante y Después de instalar, es ahí donde tenes que probar que hace cada uno, porque yo solo he probado uno que es después de instalar y antes de finalizar
Commit, el cual se debe sobre escribir (todos se sobre escriben para poder usarlos), asi
Código PHP:
public override void Commit(IDictionary savedState)
{
//Aqui las instrucciones que quieres ejecutar.
}
5. Un vez tengas esto listo en el proyecto de instalación debe asociar estos custom actions al proyecto, asi:
-Agregar el proyecto de clase (el custom actions) al proyecto de instalación, junto con tu proyecto principal.
-Click derecho sobre el proyecto de instalación.
-En el menu Click en
View
-En las opciones, Click en
CustomActions, salen 4 opciones,
Install,
Commit,
Rollback,
Unistall, le das Click derecho a las que programaste y click en
Add Custom Action..., busca tu proyecto de Custom y lo agregas.
Ahora para ejecutar una aplicación hay una herramienta muy útil.
Google
Pero para hacértela mas fácil, el segundo resultado de ese link es este:
Código PHP:
private void buttonMatar_Click(object sender, EventArgs e)
{
try
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "tskill.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = textNombreDelProceso.Text;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.WaitForExit();
System.Console.WriteLine(p.StandardOutput.ReadToEnd());
System.Console.WriteLine(p.StandardError.ReadToEnd());
p.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Nota 1: Por experiencia se que no todas esas lineas son necesarias, pero puedes probar cuales que sirve y cuales no. Ademas ese ejemplo al final mata el proceso, esa parte la no la uses.
Ya teniendo todo listo a generar el instalador y probar
Nota 2: Algunos antivirus pueden detectar el Custom Actions como un virus y bloquearan el instalador, si te sale algún error intenta des activando el antivirus durante la instalación
Saludos