문제

사용하는 설치 프로그램을 만들고 있습니다 innosetup, 및 일부 사용자 정의 처리기 작성 [Code] 부분. 핸들러 중 하나에서 나는 AppName (또는 잠재적으로, 다른 매개 변수의 값) [Setup] 부분. 내가 이것을 할 수있는 방법이 있습니까? 나는 보았다 선적 서류 비치, 그러나 나는 이것을 할 수있는 것을 찾지 못했습니다. 우리의 innosetup 파일은 실제로 빌드 프로세스에 의해 생성되며, 모든 프로그램 사이에 공통적이고 프로그램에 따라 다릅니다. 따라서 각 프로그램의 코드에서 상수를 정의해야합니다. 이 작업을 수행하는 편리한 방법이 있습니까?

나는 같은 것을 찾고 있습니다

MyString := ExpandConstant('{AppName}');

제외하고 {AppName} 정의 된 상수가 아닙니다. 정의 된 매개 변수를 쿼리하는 방법이 있습니까? [Setup] 부분?

도움이 되었습니까?

해결책

설치 시간 값이 아닌 빌드 타임 상수입니다. 그래서 당신은 사용할 수 있습니다 이노 설정 전 처리기 이러한 상수를 정의하기 위해 애드온. (당신은 그것을 통해 쉽게 설치할 수 있습니다 QuickStart 팩).

상수 정의 :

#define AppName "Excellent Foo App"

상수를 사용하십시오 [Setup]:

AppName={#AppName}

그리고 파스칼 코드에서는 구문을 완전히 확신하지 못하고 다음과 같은 것입니다.

MyString := {#AppName}

업데이트: 내 스크립트 중 하나가 사용되는 것을 깨달았습니다 {#emit SetupSetting("AppId")} 더 쉽습니다. 브라이언의 해결책 또한이 방법을 발견했으며 더 좋습니다.

다른 팁

Craig의 답변에서 영감을 얻은 저는 Inno 설정 전처리 서 문서를보고있었습니다 (Istool에서는 내가 찾은 한 온라인에서 사용할 수 없음). SetupSetting 전처리에서 기능.

그렇게 사용할 수 있습니다.

MyString := '{#SetupSetting("AppName")}';

그리고 길게 [Setup] 섹션은 이것이 사용되는 장소 앞에 나타납니다 (ISPP는 단 하나의 패스 일 뿐이며) AppName, 이것은 추출하려는 각 설정에 대해 추가 매크로를 정의하지 않고 원하는 결과를 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top