我有个Qt程序。所以我用windeployqt.exe . --quick创建了这个版本--它有一个SQLite3数据库,一些我用Python编译的模块,一个带有用户指南的帮助文件夹.看起来是这样的:

现在,如果我从这里直接运行pymepos.exe,一切都很好。DB是干净的,Python模块被成功地调用和执行。如果我为这个文件创建一个Inno安装程序,在安装我自己的程序后,我注意到数据库中有一些旧的东西。而且,它根本不运行我的Python模块。我在这里瞎了眼,因为我不知道发生了什么(我没有任何日志文件或任何东西),如果我单独检查我的模块,它们似乎工作良好,但主Qt程序不能运行它们。
因此,此时我重新安装了Inno安装程序(认为它可能在某个地方有缓存),将我的发布文件移到其他地方,将文件读取到.iss。编译什么都没有,是同一回事。
此外,我确实注意到,作为管理员运行已安装的pymepos.exe时,它将使用它应该使用的干净数据库,但模块似乎仍然无法工作。有什么想法吗?
这是我的.iss文件:
; 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={{0BA2A484-5F5E-49F5-94AC-5C7410C70B30}
AppName=PYMEPOS
AppVersion=1.0.5
;AppVerName=PYMEPOS 1.0.5
AppPublisher=Cubix Softworks
DefaultDirName={pf}\Cubix506/PYMEPOS
DisableProgramGroupPage=yes
OutputDir=F:\installer_leon
SetupIconFile=D:\Proyectos\QT\PymePOS\project\res\icon.ico
Compression=lzma
SolidCompression=yes
[Languages]
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "F:\release_leon\pymepos.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\D3Dcompiler_47.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libgcc_s_dw2-1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libGLESV2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libstdc++-6.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\libwinpthread-1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\opengl32sw.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Network.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Qml.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Quick.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Sql.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Svg.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\Qt5Xml.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "F:\release_leon\db\*"; DestDir: "{app}\db"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\help\*"; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\modules\*"; DestDir: "{app}\modules"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\qmltooling\*"; DestDir: "{app}\qmltooling"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\sqldrivers\*"; DestDir: "{app}\sqldrivers"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\release_leon\translations\*"; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{commonprograms}\PYMEPOS"; Filename: "{app}\pymepos.exe"
Name: "{commondesktop}\PYMEPOS"; Filename: "{app}\pymepos.exe"; Tasks: desktopicon
[Run]
Filename: "{app}\pymepos.exe"; Description: "{cm:LaunchProgram,PYMEPOS}"; Flags: nowait postinstall skipifsilent发布于 2016-04-12 12:05:27
这个问题很模糊。但为了给你一些可能性:
Program Files)中有空格的路径上运行。Program Files运行时,它没有的东西。在以管理员的身份运行应用程序时,您遇到的问题较少,这表明这是问题之一。对于测试,请尝试安装应用程序,比如C:\PYMEPOS。
Ntb,Inno安装程序不缓存任何文件。重新安装Inno安装程序不会修复任何问题。我不认为你的问题与Inno设置实际上有任何关系。
https://stackoverflow.com/questions/36567388
复制相似问题