Inno setup 我如何使用;代码“;在Inno设置中';s[文件]部分?
我想为32/64位安装动态派生源文件夹(和目标文件夹)。那么我如何在Inno安装程序的[Files]部分指定它呢。 下面给出了一个编译错误:->Inno setup 我如何使用;代码“;在Inno设置中';s[文件]部分?,inno-setup,Inno Setup,我想为32/64位安装动态派生源文件夹(和目标文件夹)。那么我如何在Inno安装程序的[Files]部分指定它呢。 下面给出了一个编译错误:-> [Files] Source: {#MySourcePath}\{code:GetSourceLibFolder}\*.jar; DestDir: {code:GetAppDir}\lib\; 我在代码部分定义了GetSourceLibFolder()和GetAppDir()函数。 函数非常简单,只返回一个变量: function GetSourc
[Files]
Source: {#MySourcePath}\{code:GetSourceLibFolder}\*.jar; DestDir: {code:GetAppDir}\lib\;
我在代码部分定义了GetSourceLibFolder()
和GetAppDir()
函数。
函数非常简单,只返回一个变量:
function GetSourceLibFolder(Param: String): String;
begin
Result:= SourceLibFolder;
end;
function GetSourceBinFolder(Param: String): String;
begin
Result:= SourceBinFolder;
end;
谢谢 源路径需要在编译时使用(除非您有
外部
标志),这意味着您必须使用ISPP和#定义
。[code]
部分仅用于运行/安装时代码,因此适用于目标路径
如果您为
GetSourceLibFolder
函数提供代码,有人可以将其转换为ISPP。我不确定是否可以从[code]
调用我们的代码,并在InnoSetup脚本的其他位置使用它们。使用#define
语句创建一个应用函数的字符串(如中所示)这个源库文件夹在哪里:相对于InnoSetup脚本的基本文件夹,它在源文件夹中吗?当您可以直接使用{app}
时,为什么还要关注目标文件夹?例如:假设您的InnoSetup脚本文件位于\
文件夹中,您的jar库位于\install\lib
中,并且您希望它们位于应用程序文件夹{app}
的lib
文件夹中,您可以定义源代码:“install\lib\*.jar”;DestDir:“{app}\lib”
简单的方法是:通过在每个脚本文件中定义不同的源文件夹,可以为每个32位和64位设置分别创建一个InnoSetup脚本。@eee:我想为32位和64位系统创建一个安装程序,因此我有两个不同的“lib”文件夹,即。lib-32和lib-64,我动态设置它们,因此希望动态读取它们。InnoSetup允许您从其命令参数传递用户定义的变量,以便您可以使用它来区分这两个lib文件夹,在Ant任务示例中:
。然后,在脚本中,您可以使用{MyLibFolder}
谢谢!我已经编辑了我的原始帖子以包含函数定义。还有什么是SourceLibFolder
?请记住,它需要在编译时而不是运行时获取。SourceLibFolder
是一个全局变量,它在[Setup]
部分的DefaultDestDir
变量的code部分获取值:DefaultDirName={code:SetProgramFileLocation}\HP\Pulse\{MyAppName}