2009-04-28 55 views
5

我使用的是最新版本的INNO的,做安裝過程中的以下內容:提取文件

  1. 執行依賴檢查,以查看安裝的是什麼
  2. 安裝依賴關係尚未安裝(.NET,SQL服務器,支持DirectX等)
  3. 安裝應用程序,並從[文件]部分(wpReady)
  4. 檢查SQL Server的文件,以前安裝的數據B ase和創建/更新表等

步驟[4]創建數據庫和表等,只有當SQL Server已經安裝,這就是爲什麼它在步驟[2]中完成的工作。

輸出目錄包含創建的setup.exe,我手動放置包含上述步驟[1,2和4]所需文件的附加依賴項文件夾。

這很好用,但我想創建一個只包含所有依賴關係的exe文件,並提取之前和之前的步驟[1]之前的依賴關係。

依賴關係位於[Files]部分,但在安裝程序執行完所有表單並嘗試安裝文件之後,纔會提取這些文件,直到安裝程序執行wpReady消息。

我用下面,增加了什麼,我需要的setup.exe

[Files] 
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall 

什麼是wpReady之前提取文件到臨時目錄的最好方法還是應該執行wpReady先行動再去安裝依賴(雖然不理想)。

回答

11

可以使用ExtractTemporaryFile()功能在PrepareToInstall事件函數從[Files]部分中的任何文件解壓到{tmp}早些時候,當安裝完成後也將被刪除。連同腳本和各種鉤子Inno Setup爲您提供幾乎所有可以實現的功能。

查看Inno Setup幫助的「Pascal腳本」部分,特別是「支持函數參考」。在那裏你會找到關於ExtractTemporaryFile()等的文檔。

+0

非常感謝。簡直不敢相信我錯過了這個功能! – Belliez 2009-04-28 14:02:19

+0

要完成此操作的建議位置現在位於[PrepareToInstall]事件函數中,因爲它允許更方便地使用警告和重新啓動提示。 – Deanna 2012-07-09 10:39:52

-2

{TMP}由安裝或卸載使用

臨時目錄。這不是用戶的TEMP環境變量的值。它是用戶的臨時目錄的子目錄,由安裝程序或啓動時卸載(名稱類似於「C:\ WINDOWS \ TEMP \ IS-xxxxx.tmp」)創建。當安裝或卸載退出時,此目錄中的所有文件和子目錄都將被刪除。在安裝過程中,這主要用於提取要在[運行]部分中執行但在安裝後不需要的文件。