Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inno setup 我如何使用;代码“;在Inno设置中';s[文件]部分?_Inno Setup - Fatal编程技术网

Inno setup 我如何使用;代码“;在Inno设置中';s[文件]部分?

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

我想为32/64位安装动态派生源文件夹(和目标文件夹)。那么我如何在Inno安装程序的[Files]部分指定它呢。 下面给出了一个编译错误:->

[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}