這可能是一個簡單的修復,但我似乎無法將其包裹在它的周圍。我有一個安裝應用程序,需要用戶選擇3個可能的INI文件中的1個來配合安裝。我可以輕鬆地做3種不同的設置,每種設置都使用不同的INI,但我想簡化問題並在安裝時給用戶選擇INI。 INI文件具有相同的名稱,因此打包時必須給出不同的名稱。一旦用戶選擇安裝哪個INI,它將被解壓到應用程序目錄並重新命名。有沒有辦法做到這一點?INNO設置:在安裝包中定義配置文件
感謝您的幫助!
這可能是一個簡單的修復,但我似乎無法將其包裹在它的周圍。我有一個安裝應用程序,需要用戶選擇3個可能的INI文件中的1個來配合安裝。我可以輕鬆地做3種不同的設置,每種設置都使用不同的INI,但我想簡化問題並在安裝時給用戶選擇INI。 INI文件具有相同的名稱,因此打包時必須給出不同的名稱。一旦用戶選擇安裝哪個INI,它將被解壓到應用程序目錄並重新命名。有沒有辦法做到這一點?INNO設置:在安裝包中定義配置文件
感謝您的幫助!
一種可能的方法是創建一個[Run]部分(或添加到)並執行(AfterInstall:參數)一個Pascal例程,刪除額外的ini文件並重命名其餘的一個。
您可以添加條目所有三個INI文件到[文件]部分,給他們相同的目的地的名稱,並使用Check
參數在單一個被安裝的運行來決定。從我的安裝腳本的一個片段:
[Files]
Source: "{src}\Line1.ini"; DestDir: "{app}"; DestName: "Line.ini"; \
Flags: external; Check: IsLine1
Source: "{src}\Line2.ini"; DestDir: "{app}"; DestName: "Line.ini"; \
Flags: external; Check: IsLine2
Source: "{src}\Line3.ini"; DestDir: "{app}"; DestName: "Line.ini"; \
Flags: external; Check: IsLine3
而在[代碼]部分的支持功能:
function IsLine(ID: integer): boolean;
begin
Result := (ID = 1 + LinePage.SelectedValueIndex);
end;
function IsLine1(): boolean;
begin
Result := IsLine(1);
end;
function IsLine2(): boolean;
begin
Result := IsLine(2);
end;
function IsLine3(): boolean;
begin
Result := IsLine(3);
end;
其中LinePage
是TInputOptionWizardPage
類型的自定義頁面。用戶選擇要爲其安裝程序的生產線的無線電組,只複製匹配的INI文件。請注意,在我的情況下它們是external
,但它們也可以編譯到設置中。
謝謝!我會檢查一下,看看我能做些什麼。 – 2010-02-03 14:51:20