이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 16162|회답: 2

[신간호] Setup Project 프로젝트 내에서 Silent Mode를 사용해 InstallShield 설치 패키지를 실행할 때 문제가 발생할 수 있습니다

[링크 복사]
게시됨 2018. 8. 28. 오전 11:56:12 | | |
안녕하세요, 신들이시여,

최근에 Setup Project를 사용해 프로그램을 패키징하고 있는데, 이름은 A입니다.
프로젝트 요구사항 때문에 A 설치 시 InstallShield에서 패키지로 만든 설치 패키지 B를 설치해야 했습니다.
이 일에서. AfterInstall과 this.beforeUninstall parts는 각각 "Install"과 "Reverse Install" B 코드를 추가합니다.
그러나 원활하게 실행되지 못했고, B가 생성한 setup.log는 ResultCode=-3을 얻었으나, 그 이유는 알려지지 않았습니다...

이사회 신께 부탁드려요, 이 문제는 오랫동안 제 동생을 괴롭혔고, 저는 해결하지 못했어요... 감사합니다!!

다음 코드에서는 InstallerHelper_AfterInstall와 InstallerHelper_BeforeUninstall에 있던 코드가 새로 생성된 C# 콘솔 프로그램에 배치되지만, 정상적으로 실행될 수 있습니다.
WaitforExit()도 매끄럽게 멈출 수 있고, B 설치 패키지도 원활하게 실행할 수 있습니다. ResultCode=0입니다.

코드는 다음과 같습니다:
--
System을 사용;
System.Collections를 사용;
System.Collections.Generic을 사용;
System.ComponentModel을 사용;
System.Configuration.Install을 사용;
System.Linq를 사용;
System.Threading.Tasks를 사용;
System.Configuration을 사용;
System.Windows를 사용;
System.IO;
System.Diagnostics를 사용;
System.Threading을 사용;

이름 공간 FRWebService
{
    [RunInstaller(true)]
    public partial class InstallerHelper : Installer
    {
        public InstallerHelper()
        {

            InitializeComponent();

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

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

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

            }
            catch (예외 예)
            {

            }
        }

        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)
        {
            시도해
            {
                문자열 arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            catch (예외 예)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        애플리케이션 설치 시 수행해야 할 코드
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            기지. Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("애플리케이션 설치 중...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            기지. Uninstall(stateSaver);
            System.Windows.Forms.MessageBox.Show("애플리케이션 삭제 완료...");
        }

    }
}
--





이전의:Linq는 SQL의 조건부 쿼리와 조건부 쿼리 모두에서 구현합니다
다음:MySQL 쿼리: 데이터베이스에서 특정 시점에 생성된 테이블
게시됨 2018. 8. 28. 오후 1:02:49 |
통나무를 붙여넣을 수 setup.log 있나요? 아니면 관리자 권한으로 설치를 실행하고 시도해 보는 건가요?
 집주인| 게시됨 2018. 8. 28. 오후 2:21:53 |
이 글은 2018년 9월 3일 09:47에 yishiang0217에 의해 마지막으로 편집되었습니다.
관리자가 2018-8-28 13:02에 게시함
통나무를 붙여넣을 수 setup.log 있나요? 아니면 관리자 권한으로 설치를 실행하고 시도해 보는 건가요?

안녕하세요, 관리자 여러분,

답변을 받으셔서 반갑습니다. 질문에 대한 답변을 드릴게요:

1.
그게 전부setup.log @@
--
[응답 결과]
결과코드=-3
--
아니면 InstallShield가 더 많이 출력할 수 있나요?!

2.
Setup Project는 두 개의 파일을 생성합니다. 하나는 msi이고 다른 하나는 exe입니다. 관리자 권한으로 exe를 실행하려고 했지만...

추신. 지금까지 성공한 부분은... AfterInstall에서 B 설치 패키지를 실행하되, WaitForExit은 사용하지 마세요. 부드럽고 조용하게 설치할 수 있습니다... 하지만 B가 설치되고 패키징되어 있어서 몇 가지 작업을 해야 합니다...
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com