Inno Installer 安装后不创建子文件夹
Inno Installer not creating sub-folder after installation
我需要为我的应用程序创建一个安装程序。我正在使用 Inno 来执行此操作,我正在按照 GUI 进行操作,就像从文件-> 新建...并设置我的应用程序所需的所有文件和文件夹。
我的应用程序包含子文件夹,其中有一些资源文件。安装程序创建安装包后,我测试了应用程序安装,但似乎所有文件都复制到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
你可以在App目录下看到一个名为Resources
的文件夹,这个文件夹应该是在安装的时候创建的,里面有里面的内容。但是现在没有创建文件夹,Resource
文件夹的所有内容都被复制到 exe 目录。
平台:Windows864 位。
脚本创建向导将所有添加的内容放入应用程序目标基础文件夹,{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
我需要为我的应用程序创建一个安装程序。我正在使用 Inno 来执行此操作,我正在按照 GUI 进行操作,就像从文件-> 新建...并设置我的应用程序所需的所有文件和文件夹。
我的应用程序包含子文件夹,其中有一些资源文件。安装程序创建安装包后,我测试了应用程序安装,但似乎所有文件都复制到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
你可以在App目录下看到一个名为Resources
的文件夹,这个文件夹应该是在安装的时候创建的,里面有里面的内容。但是现在没有创建文件夹,Resource
文件夹的所有内容都被复制到 exe 目录。
平台:Windows864 位。
脚本创建向导将所有添加的内容放入应用程序目标基础文件夹,{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