架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8487|回复: 2

[新问题] Setup Project專案內使用Silent Mode執行InstallShield安裝包會有問題

[复制链接]
发表于 2018-8-28 11:56:12 | 显示全部楼层 |阅读模式
各位大神們好,

小弟最近在用Setup Project打包程式,稱呼為A。
其中因為專案需求,我必須在A的安裝過程中安裝一個InstallShield打包的安裝包B,
在this.AfterInstall及this.BeforeUninstall的部份分別加入了「安裝」及「反安裝」B的代碼,
不過卻無法順利執行,B產生的setup.log得到的ResultCode=-3,但原因不明…

懇請板上大神協助,這個問題困擾小弟好久,一直無法解決阿…謝謝!!

下述代碼中,InstallerHelper_AfterInstall及 InstallerHelper_BeforeUninstall內的代碼,分別放在新建立的C# console程式中,卻能正常運行,
且WaitforExit()也能順利卡住,而B安裝包也能順利執行,ResultCode=0。

代碼如下:
--
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;
using System.Configuration;
using System.Windows;
using System.IO;
using System.Diagnostics;
using System.Threading;

namespace FRWebService
{
    [RunInstaller(true)]
    public partial class InstallerHelper : Installer
    {
        public InstallerHelper()
        {

            InitializeComponent();

            this.BeforeInstall += new InstallEventHandler(InstallerHelper_BeforeInstall);
            this.AfterInstall += new InstallEventHandler(InstallerHelper_AfterInstall);

            this.BeforeUninstall += new InstallEventHandler(InstallerHelper_BeforeUninstall);
            this.AfterUninstall += new InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e)
        {
            try
            {
                String arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();

            }
            catch (Exception ex)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committing(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committed(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_AfterInstall(object sender, InstallEventArgs e)
        {
            try
            {
                String arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            catch (Exception ex)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        //Code to perform at the time of installing application
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base.Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("Installing Application...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base.Uninstall(stateSaver);
            System.Windows.Forms.MessageBox.Show("Uninstalling Application...");
        }

    }
}
--





上一篇:Linq 实现sql中的not in和in条件查询
下一篇:mysql查询某一数据库中某一时期建的表
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-8-28 13:02:49 | 显示全部楼层
能把setup.log日誌 貼上來嗎?或者用管理員身份運行安裝試下?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2018-8-28 14:21:53 | 显示全部楼层
本帖最后由 yishiang0217 于 2018-9-3 09:47 编辑
admin 发表于 2018-8-28 13:02
能把setup.log日誌 貼上來嗎?或者用管理員身份運行安裝試下?

管理員您好,

很高興收到您的回覆,以下依序回覆您的問題:

1.
setup.log的內容只有這樣耶@@
--
[ResponseResult]
ResultCode=-3
--
還是InstallShield能印出更多呢?!

2.
Setup Project會產生兩個檔案,一個是msi,一個是exe,我嘗試用管理員身份運行該exe,但也是無法…

P.S. 目前試過能成功的部份是…AfterInstall時運行B安裝包,但是不要用WaitForExit的話,就能順利靜默安裝… 不過因為B安裝包裝完我還要做一些操作...
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-5-29 10:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表