Inno Setup打包注意事項


Inno Setup是一個開源的,商業的,快捷的腳本打包工具。

具體打包流程根據界面提示就可以搞定,下面講解幾個注意事項

1.在安裝包進行安裝的過程當中,很多程序都需要修改配置信息,這就要求我們在安裝完成那一刻調用一個窗體程序來修改配置信息,那么這應該怎么來編寫打包腳本呢?

 首先最好在編輯腳本以前就應該把修改配置文件信息的exe文件打包進入安裝包,比如我們現在想調用一個WindowsFormsApplication1.exe文件,首先把它打包進入安裝包,如下:

Source: "D:\C#\暑假\XmlDeal\WindowsFormsApplication1\bin\Release\WindowsFormsApplication1.exe"; DestDir: "{app}"; Flags: ignoreversion

然后在[Run]段添加如下代碼:

[Run]
Filename: "{app}\WindowsFormsApplication1.exe";
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent

這樣就可以在程序安裝成功前一刻調用該程序修改配置文件,修改成功以后,才安裝完成。

2.如何處理安裝文件夾

我們的安裝文件如果文件和文件夾的路徑與Debug或者Release不相同,安裝的程序就無法正常運行,下面就是如何處理文件夾。

比如一個Log文件夾下有一個LogInfo,LogError子文件夾,子文件夾有文件

我們應該這樣編輯其打包文件夾腳本。

Source: "C:\Users\G50\Desktop\MAS\MASClient\bin\Debug\Log\LogError\*"; DestDir: "{app}\Log\LogError"; Flags: ignoreversion
Source: "C:\Users\G50\Desktop\MAS\MASClient\bin\Debug\Log\LogInfo\*"; DestDir: "{app}\Log\LogInfo"; Flags: ignoreversion

3.如何處理.net版本問題

我們寫的.net程序都有對應的.net版本,如果用戶電腦沒有相應的版本,程序無法正常運行,這就需要我們打包時把.net安裝包打包進去,編輯好腳本,在安裝時,檢測用戶電腦有沒有對應的.net版本信息,如果有,則正常安裝,否則就安裝.net,安裝完畢之后.net安裝包自動刪除。

代碼如下:

Source: "D:\dotNetFx40_Full_x86_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion

添加[Code]段代碼

[Code]
function CheckDotNet4_0():boolean;
begin
Result:=not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
end;

function InitializeSetup(): Boolean;
var Path:string;
ResultCode: Integer;
begin
if CheckDotNet4_0() then
begin
if MsgBox('系統檢測到您沒有安裝.Net Framework4.0,是否立刻下載並安裝?', mbConfirmation, MB_YESNO) = idYes then
begin
ExtractTemporaryFile('dotNetFx40_Full_x86_x64.exe');
Exec(ExpandConstant('{tmp}\dotNetFx40_Full_x86_x64.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
Result := true;
end
else
begin
MsgBox('沒有安裝.Net Framework4.0環境,無法運行【XX】程序,本安裝程序即將退出!',mbInformation,MB_OK);
Result := false;
end;
end
else
begin
Result := true;
end;
end;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM