2015-07-10 238 views
1

我需要爲我的應用程序創建安裝程序。我正在使用Inno做這件事,我正在按照圖形用戶界面進行操作,例如從文件 - >新建...並設置我的應用程序所需的所有文件和文件夾。Inno安裝程序安裝後未創建子文件夾

我的應用程序包含子文件夾,其中有一些資源文件。安裝程序創建安裝包後,我已經測試了應用程序的安裝,但似乎所有的文件都被複制到exe文件夾中,沒有創建子文件夾。

這裏它由Inno

; Script generated by the Inno Setup Script Wizard. 
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 

#define MyAppName "APP" 
#define MyAppVersion "1.5" 
#define MyAppPublisher "My Company, Inc." 
#define MyAppURL "http://www.example.com/" 
#define MyAppExeName "AppName.exe" 

[Setup] 
; NOTE: The value of AppId uniquely identifies this application. 
; Do not use the same AppId value in installers for other applications. 
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 
AppId={{E327E502-E384-48AA-A190-82DD14B6FE07} 
AppName={#MyAppName} 
AppVersion={#MyAppVersion} 
;AppVerName={#MyAppName} {#MyAppVersion} 
AppPublisher={#MyAppPublisher} 
AppPublisherURL={#MyAppURL} 
AppSupportURL={#MyAppURL} 
AppUpdatesURL={#MyAppURL} 
DefaultDirName={pf}\{#MyAppName} 
DefaultGroupName={#MyAppName} 
OutputBaseFilename=setup 
Compression=lzma 
SolidCompression=yes 

[Languages] 
Name: "english"; MessagesFile: "compiler:Default.isl" 

[Tasks] 
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked 

[Files] 
Source: "C:\Users\me\Desktop\InstallerCreation\App\App.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "C:\Users\me\Desktop\InstallerCreation\App\avcodec-55.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "C:\Users\me\Desktop\InstallerCreation\App\Resources\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 
; NOTE: Don't use "Flags: ignoreversion" on any shared system files 

[Icons] 
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon 

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

產生你可以看到應用程序目錄,同時安裝與它的內容應創建一個文件夾裏面的名字Resources完整的劇本。但是現在沒有文件夾被創建,並且Resource文件夾的所有內容都被複制到了exe目錄中。

平臺:Windows8 64位。

回答

2

腳本創建嚮導將所有添加的東西放入應用程序目標基文件夾{app}。如果添加了整個部署文件夾的子文件夾將被創建:

C:\Users\me\Desktop\InstallerCreation\App\ 

那將造成這樣的條目:

[Files] 
Source: "C:\Users\me\Desktop\InstallerCreation\App\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 

recursesubdirs標誌有指示安裝,對於這個文件夾應該是遞歸包括所有與*模式匹配的文件。這也包括您的\Resources子文件夾。

這時例如,您可以指定在DestDir參數相符的目標子文件夾:

[Files] 
Source: "C:\Users\me\Desktop\InstallerCreation\App\Resources\*"; DestDir: "{app}\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs 

但是你可以做的最好的就是做一個專門的文件夾進行部署,並通過像一個單一的條目添加它包含了一切這樣的:

[Files] 
Source: "C:\MyApp\Deployment\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 
+1

嗨感謝您的回答,我使用它錯了,現在它的工作時,我給專門的文件夾爲整個應用程序,我有一個更多的問題,是安裝在桌面上創建快捷方式,但沒有對圖標快捷鍵,我已經設置了圖標wh通過嚮導創建腳本。 – Haris

+0

該快捷方式應該從應用程序中獲取圖標。只能選擇爲輸出設置指定圖標,而不是該腳本創建嚮導中主要可執行文件的快捷方式。你只能說如果你想創建一個主要的可執行桌面圖標或不在那裏。如果你想爲你的桌面快捷方式明確指定圖標(給它與可執行文件不同的圖標),你需要修改腳本,更具體的說,添加IconFilename和/或IconIndex參數'[圖標]'部分。 – TLama

+0

好吧,我會檢查它。 – Haris

相關問題