Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 16162|Répondre: 2

[Nouveau numéro] Il y aura des problèmes pour exécuter le paquet d’installation InstallShield en mode silencieux dans le projet Setup Project

[Copié le lien]
Publié sur 28/08/2018 11:56:12 | | |
Bonjour dieux,

J’ai récemment utilisé Setup Project pour empaqueter le programme, et il s’appelle A.
En raison des exigences du projet, j’ai dû installer un paquet d’installation B fourni par InstallShield lors de l’installation de A.
Dans celui-ci. AfterInstall et ceci. BeforeUninstall ajoutent respectivement le code « Installer » et « Reverse Install » B.
Cependant, il n’a pas pu être exécuté sans problème, et le setup.log généré par B a obtenu ResultCode=-3, mais la raison est inconnue...

Je supplie le dieu du conseil d’aider, ce problème a troublé mon petit frère depuis longtemps, et je n’ai pas réussi à le résoudre... Merci!!

Dans le code suivant, le code du InstallerHelper_AfterInstall et InstallerHelper_BeforeUninstall est placé dans le nouveau programme console C# créé, mais il peut s’exécuter normalement.
Et WaitforExit() peut aussi rester bloqué sans problème, et le package d’installation B peut aussi être exécuté sans problème, ResultCode=0.

Le code est le suivant :
--
utilisant System ;
en utilisant System.Collections ;
utilisant System.Collections.Generic ;
utilisant System.ComponentModel ;
en utilisant System.Configuration.Install ;
utilisant System.Linq ;
utilisant System.Threading.Tasks ;
utilisant System.Configuration ;
en utilisant System.Windows ;
utiliser System.IO ;
en utilisant System.Diagnostics ;
utilisant System.Threading ;

Espace de noms FRWebService
{
    [RunInstaller(true)]
    classe partielle publique InstallerHelper : Installer
    {
        InstallerHelper() public
        {

            InitializeComponent() ;

            Exactement. AvantInstaller += nouveau InstallEventHandler(InstallerHelper_BeforeInstall) ;
            Exactement. AfterInstall += nouveau InstallEventHandler(InstallerHelper_AfterInstall) ;

            Exactement. AvantDésinstaller += nouveau InstallEventHandler(InstallerHelper_BeforeUninstall) ;
            Exactement. AfterUninstall += new InstallEventHandler(InstallerHelper_AfterUninstall) ;
        }

        void privé InstallerHelper_BeforeUninstall(objet émetteur, InstallEventArgs e)
        {
            essaie
            {
                String arg = « /s /uninst » ;
                Process p = Process.Start(« C :\\Program Files\\Test\\setup_io.exe », arg) ;
                p.WaitForInputIdle() ;
                p.AttendsPourSortir() ;

            }
            catch (Exception ex)
            {

            }
        }

        vide privé InstallerHelper_BeforeInstall(émetteur d’objet, InstallEventArgs e)
        {

        }

        void privé InstallerHelper_Committing(object sender, InstallEventArgs e)
        {

        }

        void privé InstallerHelper_Committed(object sender, InstallEventArgs e)
        {

        }

        vide privé InstallerHelper_AfterInstall(objet émetteur, InstallEventArgs e)
        {
            essaie
            {
                String arg = « /s » ;
                Process p = Process.Start(« C :\\Program Files\\Test\\setup_io.exe », arg) ;
                p.WaitForInputIdle() ;
                p.AttendsPourSortir() ;
            }
            catch (Exception ex)
            {

            }
        }

        vide privé InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Code à exécuter au moment de l’installation de l’application
        override public void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch() ;
            base. Install(stateSaver) ;
            System.Windows.Forms.MessageBox.Show(« Installation de l’application... ») ;
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch() ;
            base. Désinstaller (stateSaver) ;
            System.Windows.Forms.MessageBox.Show(« Désinstallation de l’application... ») ;
        }

    }
}
--





Précédent:Linq implémente les requêtes conditionnelles non dans et dans SQL
Prochain:MySQL recommande des tables créées à un moment donné dans une base de données
Publié sur 28/08/2018 13:02:49 |
Peut-on coller setup.log journaux ? Ou bien faire fonctionner l’installation en tant qu’administrateur et essayer ?
 Propriétaire| Publié sur 28/08/2018 14:21:53 |
Ce post a été modifié pour la dernière fois par yishiang0217 le 2018-9-3 09:47
admin publié le 28-08-2018 à 13:02
Peut-on coller setup.log journaux ? Ou bien faire fonctionner l’installation en tant qu’administrateur et essayer ?

Bonjour les administrateurs,

Content de recevoir votre réponse, voici les réponses à vos questions :

1.
C’est tout ce dont setup.log @@
--
[RésultatRéponse]
ResultCode=-3
--
Ou bien InstallShield peut-il en imprimer davantage ?!

2.
Setup Project génère deux fichiers, l’un est msi et l’autre un exe, j’ai essayé de lancer l’exe en tant qu’administrateur, mais je n’ai pas pu...

P.S. La partie qui a réussi jusqu’à présent est... Exécutez le package d’installation B lors de l’AfterInstall, mais n’utilisez pas WaitForExit, vous pouvez l’installer en douceur et en silence... Mais comme B est installé et emballé, je dois encore faire quelques opérations...
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com