2017-09-24 17 views
1

내가 사용하는 경우/DIR 명령 줄 스위치사용자 지정 경로 페이지와 이노 설치/DIR 명령 줄 스위치를 작동하게하는 방법

지정된 경로가 내 사용자 지정 페이지에서 경로 상자에 사용되지 않습니다
"Mysoft.exe" /VERYSILENT /installerbusiness /DIR="C:\Program Files (x86)" 

:

Use two/multiple selected directories from custom page in Files section을 기반으로하는 코드를 사용하고 있습니다.

이것은 내가 사용하고있는 코드의 예입니다. 당신이 /DIR= command-line switch의 처리를 포함 이노 설정의 "설치 경로"의 표준 동작을 원하는 경우

[Code] 

var 
    Install: TInputDirWizardPage; 

procedure InitializeWizard(); 
begin 
    Install := 
    CreateInputDirPage(
     wpSelectDir, CustomMessage('Readyinstall'), 
     CustomMessage('Readyinstallpc'), #13#10#13#10 + CustomMessage('Tocontinuet'), 
     True, 'Mysoft'); 

    Install.Add(CustomMessage('DestFolder')); 

    Install.Values[0] := ('C:\Program Files\Mysoft'); 
    { ... } 
end; 
+0

물론 그렇지 않습니다. Inno Setup이 알지 못하는 사용자 정의 컨트롤을 사용합니다. 코드 샘플은'install'과'portable'가 무엇인지 설명하지 않습니다. 우리는 [mcve]가 필요합니다. –

+0

여기에있다 : https://paste.ofcode.org/ke9Bam845RSnG8Xubd2x6S – Thebig1825

+0

코드는'GetDir' 함수를 보여주지 않으므로 * complete *가 아니다. 모든 라디오 버튼의 내용이이 질문과 관련이 없으므로 * minimal *은 거의 없습니다. –

답변

1

, 당신은 표준 하나에 사용자 정의 경로 상자를 연결해야합니다.

그래서 특히, 당신은 사용자 정의 상자에 WizardForm.DirEdit의 초기 값을 복사 할 수 있습니다

var 
    Page: TInputDirWizardPage; 

procedure InitializeWizard(); 
begin 
    ... 
    Page := CreateInputDirPage(...); 
    Page.Add(...); 
    Page.Values[0] := WizardForm.DirEdit.Text; 
end; 

이 솔루션뿐만 아니라 /DIR=뿐만 아니라 /LOADINF= 처리합니다.

위 코드를 보완하려면 값을 WizardForm.DirEdit으로 다시 복사해야합니다. 이렇게하면 다시 설치/업그레이드 할 때 이전에 선택한 값이 재사용되는지 확인할 수 있습니다. 이 점은 대답 1의 Use two/multiple selected directories from custom page in Files section에 대한 답입니다. 위에서 때문에 당신의 설치의 복잡한 논리를 구현하기가 너무 복잡 (또는 명확하지) 인 경우


, 당신은 자신을 프로그래밍 /DIR= 스위치를 처리 할 수 ​​있습니다. Setting value of Inno Setup custom page field from command-line을 참조하십시오.

procedure InitializeWizard(); 
var 
    DirSwitchValue: string; 
begin 
    Install := ...; 

    Install.Add(...); 

    DirSwitchValue := ExpandConstant('{param:DIR}'); 
    if DirSwitchValue <> '' then 
    begin 
    Install.Values[0] := DirSwitchValue; 
    end 
    else 
    begin 
    Install.Values[0] := ExpandConstant('{pf}\Mysoft'); 
    end; 
end; 

이 솔루션은 분명히 /LOADINF=을 처리하지 않습니다. .inf 파일을 처리하는 방법은 Inno Setup Load defaults for custom installation settings from a file (.inf) for silent installation입니다.

또한이 솔루션을 사용하면 이전에 사용한 설치 경로가 업그레이드/재설치에 사용되지 않습니다. 구현 방법은 Inno Setup with three destination folders입니다.

+0

내 대답의 코드를 사용하지 않았습니다. –

+0

"* 디렉토리 값을 저장 하시겠습니까?" 기본 디렉토리를 의미합니까? 'DefaultDirName'을 사용하십시오. –

+0

무슨 뜻인지 확실치 않습니다. 그러나 그렇습니다, 그것은 당신이 사용해야하는 코드입니다. 그리고 다른 설치 프로그램과 마찬가지로'DefaultDirName' 지시자를 추가하여 기본 설치 경로를 설정해야합니다. –