Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 16162|Respuesta: 2

[Nuevo número] Habrá problemas para ejecutar el paquete de instalación InstallShield usando el Modo Silencioso dentro del proyecto Proyecto de Configuración

[Copiar enlace]
Publicado en 28/8/2018 11:56:12 | | |
Hola dioses,

Últimamente he estado usando Setup Project para empaquetar el programa, y se llama A.
Debido a los requisitos del proyecto, tuve que instalar un paquete de instalación B empaquetado por InstallShield durante la instalación de A.
En esto. AfterInstall y este. Las partes BeforeUninstall añaden el código "Install" y "Reverse Install" B respectivamente.
Sin embargo, no pudo ejecutarse sin problemas, y el setup.log generado por B obtuvo ResultCode=-3, pero la razón es desconocida...

Le ruego al dios de la junta que me ayude, este problema ha preocupado a mi hermano pequeño durante mucho tiempo y no he podido solucionarlo... ¡¡Gracias!!

En el siguiente código, el código de la InstallerHelper_AfterInstall y InstallerHelper_BeforeUninstall se coloca en el programa de consola C# recién creado, pero puede ejecutarse normalmente.
Y WaitforExit() también puede quedarse atascado sin problemas, y el paquete de instalación B también puede ejecutarse sin problemas, ResultCode=0.

El código es el siguiente:
--
usando Sistema;
usando System.Collections;
usando System.Collections.Generic;
usando System.ComponentModel;
usando System.Configuration.Install;
usando System.Linq;
usando System.Threading.Tasks;
usando System.Configuration;
usando System.Windows;
usando System.IO;
usando System.Diagnostics;
usando System.Threading;

Espacio de nombres FRWebService
{
    [RunInstaller(true)]
    clase parcial pública InstallerHelper : Instalador
    {
        InstaladorHelper público()
        {

            InitializeComponent();

            éste. AntesDeInstalar += nuevo InstalaciónEventoManejador(InstallerHelper_BeforeInstall);
            éste. AfterInstall += nuevo InstallEventHandler(InstallerHelper_AfterInstall);

            éste. AntesDeUninstall += nuevo InstalaciónEventoManejador(InstallerHelper_BeforeUninstall);
            éste. AfterUninstall += nuevo InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        void privado InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e)
        {
            Prueba
            {
                String arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.EsperaEnInactivo();
                p.EsperaSalida();

            }
            catch (excepción ex)
            {

            }
        }

        void privado InstallerHelper_BeforeInstall(object sender, InstallEventArgs e)
        {

        }

        void privado InstallerHelper_Committing(object sender, InstallEventArgs e)
        {

        }

        vacío privado InstallerHelper_Committed(object sender, InstallEventArgs e)
        {

        }

        vacío privado InstallerHelper_AfterInstall(object sender, InstallEventArgs e)
        {
            Prueba
            {
                String arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.EsperaEnInactivo();
                p.EsperaSalida();
            }
            catch (excepción ex)
            {

            }
        }

        vacío privado InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Código a ejecutar en el momento de instalar la aplicación
        public, override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base. Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("Instalando aplicación...");
        }

        anulación pública void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base. Desinstalar (stateSaver);
            System.Windows.Forms.MessageBox.Show("Desinstalando la aplicación...");
        }

    }
}
--





Anterior:Linq implementa consultas condicionales en y no en SQL
Próximo:Consultas MySQL Tablas creadas en un momento determinado en una base de datos
Publicado en 28/8/2018 13:02:49 |
¿Se pueden pegar setup.log registros? ¿O ejecutar la instalación como administrador y probarlo?
 Propietario| Publicado en 28/8/2018 14:21:53 |
Esta publicación fue editada por última vez por yishiang0217 el 2018-9-3 09:47
admin publicado el 28-8-2018 13:02
¿Se pueden pegar setup.log registros? ¿O ejecutar la instalación como administrador y probarlo?

Hola administradores,

Encantado de recibir tu respuesta, aquí tienes las respuestas a tus preguntas:

1.
De eso setup.log todo va @@
--
[ResultadoRespuesta]
ResultCode=-3
--
¿O puede InstallShield imprimir más?

2.
Setup Project generará dos archivos, uno es msi y el otro es un exe, intenté ejecutar el exe como administrador, pero no pude...

P.D. La parte que ha tenido éxito hasta ahora es... Ejecuta el paquete de instalación B cuando uses AfterInstall, pero no uses WaitForExit, puedes instalarlo de forma fluida y silenciosa... Pero como B está instalado y empaquetado, todavía tengo que hacer algunas operaciones...
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com