Inno setup 在使用InnoSetup安装程序时,如何创建目录并将exe文件复制到此目录?

Inno setup 在使用InnoSetup安装程序时,如何创建目录并将exe文件复制到此目录?,inno-setup,Inno Setup,我有InnoSetup所做的自动脚本: ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId val

我有InnoSetup所做的自动脚本:

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

[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=
AppName=VideoScreenRecorder
AppVersion=1.5
;AppVerName=VideoScreenRecorder 1.5
AppPublisher=Daniel Lipman
DefaultDirName={pf}\VideoScreenRecorder
DefaultGroupName=VideoScreenRecorder
InfoBeforeFile=D:\ScreenVideoRecorderHelp.txt
OutputDir=D:\ScreenVideoRecorderCompiler
OutputBaseFilename=Setup
SetupIconFile=D:\Activity Monitor.ico
Compression=lzma
SolidCompression=yes

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

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

[Files]
Source: "D:\C-Sharp\ScreenVideoRecorder\ScreenVideoRecorderWorkingVersion\bin\Debug\ScreenVideoRecorder.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\VideoScreenRecorder"; Filename: "{app}\ScreenVideoRecorder.exe"
Name: "{commondesktop}\VideoScreenRecorder"; Filename: "{app}\ScreenVideoRecorder.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\ScreenVideoRecorder.exe"; Description: "{cm:LaunchProgram,VideoScreenRecorder}"; Flags: nowait postinstall skipifsilent
安装采取的exe文件录像机和复制它安装在程序文件目录…等

我要做的是向安装中添加另一个exe文件:ffmpeg.exe 我希望安装程序将在特定位置创建一个目录,例如c:\test,并将ffmpeg.exe放在该目录下

主exe文件是VideoScreenRecorder.exe,但我还需要将ffmpeg.exe复制到另一个特定目录

ffmpeg.exe应位于的目录为:

C:\Users\UserName\AppData\Local\ScreenVideoRecorder\ScreenVideoRecorder\workingDirectory 我需要安装目录在此处创建目录,然后将ffmpeg.exe复制到workingDirectory


我该怎么做呢?

您可以为每个文件创建
DestDir
,在本例中,您可以使用Inno安装程序实现的其中一个文件

[Files]
Source: "X:\PathToFFMPEGSource\ffmpeg.exe"; 
DestDir: "{localappdata}\ScreenVideoRecorder\ScreenVideoRecorder\workingDirectory"; 
Flags: ignoreversion

*其中X是源ffmpeg.exe所在的驱动器号。

它将自动复制到您设置的
DestDir
{localappdata}
是您询问的问题:
C:\Users\UserName\AppData\Local
对于Vista、7和8,C:\Documents and Settings\UserName\Local Settings对于Windows XPRobeN是;这只是一个确定的问题。在脚本中,我添加了要从源代码复制的ffmpeg.exe目录。因此,如果没有此源目录的用户将安装该程序,它不会出现问题吗?我的意思是,一旦我编译了它,那么ffmpeg.exe就在Setup.exe包中了?如果您使用上面的脚本从计算机中添加文件,它将包含在安装程序中(在中编译)。(除非您要使用特殊的
标志
命名为
外部
,否则在本例中不要这样做:-)。如果答案有效,您可以在点下方勾选绿色符号。请注意,您不应创建同时安装到
{pf}
{user*}
(其中包括
{localappdata}
)的脚本。第一种是每台机器安装,而后者是每用户安装。如果一台PC由多个用户共享,这会导致问题,因为每个用户的部分只能由其中一个用户访问。