2011-03-06 2 views
0

아이디어를주십시오.사용자 지정 작업의 도움말 설정 프로젝트

두 개의 프로젝트 PROJECTA 및 SETUP 프로젝트가 있습니다. PROJECTA의 설치 관리자를 만든 후 "example.msi"설치 관리자에 PROJECTA의 PROJECTA.exe (또는 활성 출력 )가 포함됩니다.

"example.msi"를 설치하는 동안 백그라운드에서 PROJECTA.exe를 실행하고 싶습니다. (아래 그림 참조) EXE 파일의 경로가 주어진 경우

나는, 그것을 잘 작동합니다 사용자 지정 컨트롤도 설치 클래스

을 시도했다. 하지만 이것은 의도 한 동작이 아니므로, 설치하기 전에 example.msi에있는 PROJECTA.exe를 복사하여 해당 위치에서 실행할 수 있도록합니다.

어떻게 달성 할 수 있습니까?

C# 구문 :

[System.Security.Permissions.SecurityPermission (System.Security.Permissions.SecurityAction.Demand)]

public override void Install(IDictionary stateSaver) 
    { 
     base.Install(stateSaver); 
    } 

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)] 
    public override void Commit(IDictionary savedState) 
    { 
     base.Commit(savedState); 
     string s="C:\\xxx\\PROJECTA.exe"; 
     System.Diagnostics.Process.Start(s); 

    } 

은 사전에 감사합니다.

+0

이것은 의미가 없으며 권장 된 방법이 아닙니다. 응용 프로그램에서 일부 기능이 필요한 경우 올바른 방법은 해당 기능을 사용자 지정 작업 (EXE 또는 DLL)으로 이동하는 것입니다. 이렇게하면 사용자 지정 작업이 설치 중에 사용되며 설치 작업 만 수행되고 응용 프로그램은 대상 컴퓨터에 설치되며 응용 프로그램으로 사용됩니다. –

답변

0

PROJECTA.exe를 MSI 설치로 만든 다음 이진 테이블에 추가하십시오. 그런 다음 UI 시퀀스에서 수행해야하는 경우 50 유형의 CustomAction을 만들거나 exec 시퀀스에있을 경우 7을 입력하십시오. 한 번에 하나의 MSI 설치 프로그램 인스턴스 만 실행할 수 있으므로 .NET CA에서는이 작업을 수행 할 수 없습니다. 중첩 된 설치 프로그램을 실행하면 기본적으로 동일한 MSI 설치 프로그램 엔진 인스턴스를 공유합니다.

중첩 된 설치 프로그램은 고통 스러울 수 있으므로 도움이 필요하면 피해야합니다.

관련 문제