将文件(依赖项)安装到Inno安装程序中安装文件夹的子文件夹(lib)中

2024-05-14 13:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Inno Setup编译安装程序,其中包含我从cx\u freeze使用的可执行文件。我的可执行文件在运行时运行正常,我绝对肯定在使用Inno Setup Wizard设置安装程序时,我从可执行文件中添加了所有必要的依赖项。但是,在运行已安装的可执行文件时,我一直遇到以下问题: enter image description here

以下是我的Inno安装编译器的代码:

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

#define MyAppName "Facile"
#define MyAppVersion "0.0.3"
#define MyAppPublisher "Facade Technologies, Inc."
#define MyAppURL "https://facade-technologies.com/"
#define MyAppExeName "facile.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={{EAD17C54-8D79-446B-BF80-FFC1F4BC32BF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=C:\Users\kirim
OutputBaseFilename=mysetup
SetupIconFile=C:\Users\kirim\Documents\Facade Technologies\facile\resources\facade_logo_256.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl"
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"

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

[Files]
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-heap-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-locale-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-math-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-runtime-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-stdio-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\python37.dll"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

我曾经读过类似的帖子,其中暗示我的安装程序没有指定路径,或者python无法找到这些模块。然而,我不知道写什么和穿什么来写它。比如,它是我需要在我的可执行文件的setup.py脚本中修复的东西,还是我可以在我的Inno-setup编译器脚本中修复的东西?更重要的是,我需要修改或编写什么才能让它正常运行?也许,这可能是因为我决定在哪里保存与mysetup.exe一起安装的.exe?任何有帮助的,谢谢

更新

我想我可能已经解决了我的问题。以前,我没有安装包含所有依赖项的.exe文件夹中的文件夹,而是将它们作为文件而不是文件夹添加。现在我将这些文件夹添加为文件夹,但仍然存在一个问题,因为我没有正确安装文件夹。我需要在已安装的.exe文件夹中维护与我在计算机上构建的.exe文件夹相同的文件结构。以下是将文件夹添加到脚本中已安装的.exe文件夹的示例代码行:

Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\lib\*"; \
    DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

问题是,它安装了该文件夹中包含的所有文件夹和文件,而不是文件夹本身,因此我可以保持相同的文件结构(例如,我的脚本不是installlibfolder,而是安装文件夹中包含的所有内容,从而更改exe源代码的文件结构集)


Tags: name文件夹appcompilerfacadeexeusersdocuments
1条回答
网友
1楼 · 发布于 2024-05-14 13:12:51

如果要将文件安装到安装文件夹的子文件夹中,则必须在DestDir参数中指定文件夹:

[Files]
Source: "C:\...\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; \
    Flags: ignoreversion
Source: "C:\...\facile\build\exe.win32-3.7\lib\*"; DestDir: "{app}\lib"; \
    Flags: ignoreversion recursesubdirs createallsubdirs

或者,如果生成文件夹仅包含要分发的文件,请将其全部包含在内:

[Files]
Source: "C:\...\facile\build\exe.win32-3.7\*"; DestDir: "{app}"; \
    Flags: ignoreversion recursesubdirs createallsubdirs

相关问题 更多 >

    热门问题