2012-06-10 88 views
4

我使用的是Inno Setup Compiler 5.4.3。創建安裝應用程序Inno Setup,從光盤緩慢

我的應用程序具有這樣的結構:

  • APP.EXE
  • 數據

如果數據是我讓所有的應用程序相關的文件(JPG圖像)的文件夾。該應用程序將從CD-ROM分發。使用嚮導創建安裝後,我得到一個文件女巫大小爲300Mb。

問題是系統需要2-3分鐘才能從CD中打開它。我想這是因爲文件的大小。如果沒有安裝人員的任何迴應,這段時間太長了。

這種情況有一些簡單的解決方案嗎? 我不需要壓縮文件,如果我可以使安裝程序結構看起來與應用程序結構相同(不只有一個文件...),我會好起來的。任何一種能夠提高性能的解決方案都會很好。

感謝, 韋德蘭

UPDATE: 這裏是我的文件設置看起來像:

[Files] 
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external 

,如果我試圖把{SRC}和外部:

Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external 

它不會將數據文件夾添加到安裝程序文件夾中,它只會創建設置文件

+1

您可以將[壓縮](http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression)設置爲'無',但慢度可能取決於讀取速度。 –

回答

3

在您的[Files]節記錄中指定external標誌。需要注意的是:

當指定的外部標誌,來源必須是分發介質上的完整路徑名的現有文件的 (或通配符)或 用戶的系統(如「{SRC} \ license.ini 「)。

像這樣的東西應該防止對文件incude到輸出設置文件:

[Files] 
Source: "{src}\Image.jpg"; DestDir: "{app}"; Flags: external 
+0

我想從光驅讀取一個大文件將比讀取一千個較小的文件更快,但OP可以測試當然.. –

+0

@Sertac,同意,但在這種情況下是不是一個好主意,包括文件(即使他們會被壓縮在一個文件中)到輸出設置文件中,因爲設置文件在啓動之前必須從介質完全讀取。恕我直言,最好的辦法是壓縮所有的圖像文件,但保持它們與安裝文件分開,一旦安裝過程開始,從該壓縮文件中提取文件。我敢打賭,這會有一些設置組合。 – TLama

+0

> *「安裝文件必須在啓動前從介質中完全讀取」*>我認爲這不正確。 –

0

當您使用external標誌,你告訴英諾複製那些已經獲得用戶的未壓縮的文件系統(在你的情況下,在CD上)。並且{src}指定相對於setup.exe本身的路徑。

[Files] 
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "{src}\data\*"; DestDir: "{app}\data"; Flags: external 

編譯的輸出將只安裝程序,但你複製這個和你的數據文件到您的CD後,然後它會在運行安裝程序都複製到最終安裝路徑。

3

您的問題是資源管理器試圖在啓動它之前查找/驗證安裝可執行文件上的代碼簽名證書。由於文件很大,它甚至在它試圖運行之前至少讀取一次整個文件。 這與Inno KB article中記錄的問題相同,導致圖標不顯示。

的解決方案是使用上的數據文件的external標誌(由TLama所建議的),或磁盤跨越到設置分成主安裝和數據文件。