Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/09/2010, 13:28
Avatar de jhonwilliams
jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Configurar Instalador en Net

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 senderEventArgs 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
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)