2011-11-02 3 views
1

InstallShield X에서 자동 설치 파일을 사용하여 기존 프로그램을 업그레이드하고 있습니다.모든 값을 변경하지 않고 InstallShield 응답 파일을 사용하는 방법?

설치가 정상적으로 실행되면 (비 자동) 사용자에게 다양한 정보를 묻습니다.이 정보는 ini 파일에 기록됩니다. 새로운 설치 인 경우 프롬프트에 대한 기본값을 제공하고 업그레이드 인 경우 ini 파일의 값을 표시합니다.

다른 사람을 덮어 쓰지 않고 ini 파일의 일부 값을 업데이트하는 자동 설치를 만들고 싶습니다. 문제는 setup.iss를 만들 때 내 ini 파일의 값을 명시 적으로 사용한다는 것입니다.

기존 값을 허용하도록 자동 설치를 지시하는 방법이 있습니까? 나는. 마치 사용자가 표시된 값을 변경하지 않고 "다음"을 클릭 한 것처럼?

이 처음 "이름"에 대한 프롬프트를 설치하고 내가 "WileCau"를 입력한다고 가정

는 여기에 인위적인 예입니다. 이름은 프로그램 ini 파일에 저장됩니다.

다음 번에 설치를 실행하고 "이름"을 묻는 메시지가 나타나면 ini 파일을 읽고 항목 필드에 "WileCau"를 표시하고 "다음"을 클릭하여 기존 값을 적용하십시오. 이 szText=WileCau가 나는 그것이 어쩌면 "밥의 예 (사용자의 입력 필드에 어떤 값을 사용하려는 말한다

... 
[{GUID}-DlgOrder] 
... 
Dlg1={GUID}-AskText-0 
... 
[{GUID}-AskText-0] 
szText=WileCau  <-- Puts this text in the entry field 
Result=1   <-- Indicates clicking "Next" 
... 

:이 대한 자동 설치를 만들 경우

문제는 같은 것을 포함입니다 ").

답변

3

SilentWriteDataSilentReadData을 사용하여 자동 대화 상자 루틴을 구현할 수 있습니다. 예를 들어, 쓰기 시간에 값이 기본값인지 여부를 확인하고, 값이 기본값이면 특수 문자열을 씁니다. 읽은 시간에 특수 문자열을 다시 읽으면 기본값을 무시하지 마십시오. OnFirstUIBefore 중에 사용하는 모든 기존 대화 상자에 대해이 작업을 수행해야하며이 동작은 InstallShield가 제공하는 대화 상자에 대한 재정의를 포함해야합니다.

+0

감사합니다. 응답 파일을 통해 수행하는 방법이 있었으면 좋겠지 만 Cosmin을 오해하지 않는 한 IS X에서는 가능하지 않을 수 있습니다. 계획 B는 제안대로 자리 표시자를 사용했습니다. Silent [Read | Write] Data에 대해 알지 못해서 그들에 대한 정보에 감사드립니다. – WileCau

1

INI 항목은 formatted이므로 설치 프로그램 속성을 지원합니다. 즉, 하드 코딩 된 값 대신 설치 프로그램 속성을 사용할 수 있습니다. 예를 들면 :

[MY_PROPERTY] 

이 속성은 다음 사용자 (예를 들어 편집 상자)에서 정보를 검색하는 사용자 지정 컨트롤과 연관 될 수 있습니다.

+0

이 문제는 InstallScript (또는 InstallScript MSI) 응답 파일과 관련이 없습니다. –

+0

@Cosmin, 내가 게시 한 링크를 읽고 제안 된대로 속성을 추가했습니다. 그런 다음 [MyProperty]를 응답 파일에 넣을 수 있고 InstallShield가 속성으로 인식하고 속성 값으로 바꿀 수 있다고 생각했지만 입력 된 값으로 [MyProperty] (리터럴 텍스트) 만 허용합니다. 나는 당신의 대답을 오해 했는가, 그렇지 않으면 효과가 있겠는가? – WileCau

+0

죄송합니다. MSI 고유의 INI 지원을 사용하고 있다고 생각했습니다. InstallScript의 경우 Michael이 제안한 방법을 시도해 볼 수 있습니다. –

관련 문제