在Inno Setup InitializeSetup期间从安装程序中提取同名文件



这是我的文件节

Source: "Deploymentx64SQLite.Interop.dll"; DestDir: "{app}x64"
Source: "Deploymentx64System.Data.SQLite.dll"; DestDir: "{app}x64"
Source: "Deploymentx64System.Data.SQLite.Linq.dll"; DestDir: "{app}x64"
Source: "Deploymentx86SQLite.Interop.dll"; DestDir: "{app}x86"; DestName
Source: "Deploymentx86System.Data.SQLite.dll"; DestDir: "{app}x86"
Source: "Deploymentx86System.Data.SQLite.Linq.dll"; DestDir: "{app}x86"

我需要一个检查列表后的第一个窗口的Inno设置出现。为此,我调用了这个函数

function RunCheckListApp(): Boolean;
var
resultCode: Integer;
source: string;
destination: string;
begin
ExtractTemporaryFile('Insync.eConnect.InstallerPreRequisiteCheck.exe');
ExtractTemporaryFile('APPSeConnect.Communications.dll');
ExtractTemporaryFile('InSync.eConnect.APPSeCONNECT.dll');
ExtractTemporaryFile('Microsoft.AspNet.SignalR.Client.dll');
ExtractTemporaryFile('Newtonsoft.Json.dll');
ExtractTemporaryFile('System.Data.SQLite.dll');
ExtractTemporaryFile('System.Data.SQLite.dll');
ExtractTemporaryFile('InSync.eConnect.NLogModule.dll'); 
destination:=ExpandConstant('{tmp}Adapters');
CreateDir(destination);
destination:=ExpandConstant('{tmp}x86');
CreateDir(destination);
destination:=ExpandConstant('{tmp}x64');
CreateDir(destination);
ExtractTemporaryFiles('{tmp}x86SQLite.Interop.dll');
destination := ExpandConstant('{tmp}AdaptersInSync.eConnect.NLogModule.dll')
source := ExpandConstant('{tmp}InSync.eConnect.NLogModule.dll');
FileCopy(source, destination, False);
DeleteFile(source);
Exec(ExpandConstant('{tmp}Insync.eConnect.InstallerPreRequisiteCheck.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
if resultCode > 0
then begin
Result:= true;
end
else
begin
Result:= false;
end;
end;

InitializeSetup函数中。我试图运行的应用程序需要相应文件夹中的dll才能正常运行。

Deploymentx64SQLite.Interop.dll{app}x64
Deploymentx86SQLite.Interop.dll{app}x86
这些是要复制的文件。现在,应用程序Insync.eConnect.InstallerPreRequisiteCheck.exe需要相同文件夹中的相同dll才能工作。我正试图提取那些具有相同名称的dll到临时文件夹,并具有相同的结构。

ExtractTemporaryFiles采用由DestDir参数指定的完整路径(带有未展开的常量)。它仍然提取到{tmp}

ExtractTemporaryFiles('{app}x86SQLite.Interop.dll');

相关问题:为什么我们在Inno Setup的ExtractTemporaryFiles函数中指定路径?

相关内容

  • 没有找到相关文章

最新更新