2016-04-12 9 views
0

Ich habe ein Programm in Qt. Also habe ich die Veröffentlichung mit windeployqt.exe . --quick Es hat eine SQLite3 Datenbank, einige Module ich in Python kompiliert, eine Hilfe-Ordner mit einem Handbuch ... es sieht wie folgt aus: JetztPython/Qt/SQLite3-Anwendung wird nicht ausgeführt, wenn mit Inno-Setup installiert

Folder view , wenn ich pymepos.exe direkt von hier laufen Alles funktioniert gut. Die DB ist sauber und die Python-Module werden aufgerufen und erfolgreich ausgeführt. Wenn ich ein Installationsprogramm mit Inno Setup für diese Dateien erstelle, merke ich nach der Installation meines eigenen Programms, dass ich einige alte Sachen habe, die es in der Datenbank gab. Außerdem führt es meine Python-Module überhaupt nicht aus. Ich gehe hier blind, weil ich nicht wissen kann, was vor sich geht (ich habe keine Log-Datei oder so), wenn ich meine Module separat überprüfe, scheinen sie gut zu funktionieren, aber das Haupt-Qt-Programm kann sie nicht ausführen .

An diesem Punkt habe ich Inno Setup neu installiert (denke, dass es irgendwo einen Cache haben könnte), verschoben meine Release-Dateien woanders, readded Dateien auf die .iss. Kompilieren und nichts, dasselbe.

Auch habe ich bemerkt, dass die installierte pymepos.exe als Administrator ausgeführt wird, wird es die saubere Datenbank verwenden, die es verwenden soll, aber immer noch scheinen die Module nicht zu funktionieren. Irgendwelche Ideen?

Hier ist meine ISS-Datei:

; 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 

Antwort

1

Das ist ziemlich vage Frage. Aber um Ihnen einige Möglichkeiten:

  • Ihre Anwendung ausgelegt ist, nicht von einem Pfad mit einem Leerzeichen im Dateinamen (Program Files)
  • Ihre Anwendung benötigt einen Schreibzugriff auf seine Installationsordner ausgeführt werden. Was es nicht hat, wenn es von Program Files ausgeführt wird. Die Tatsache, dass Sie weniger Probleme haben, wenn Sie die Anwendung als Administrator ausführen, deutet darauf hin, dass dies (eines der) das Problem ist.

Für einen Test versuchen Sie, die Anwendung zu installieren, um C:\PYMEPOS zu sagen.


Ntb, Inno Setup zwischenspeichert keine Dateien. Die Neuinstallation des Inno-Setups wird nichts reparieren. Ich glaube nicht, dass dein Problem etwas mit dem Inno Setup zu tun hat.


Siehe auch Application does not work when installed with Inno Setup.

+0

Es ist gelöst, installiert in C: \ PYMEPOS und es funktioniert jetzt. Ich hätte nie gedacht, dass die Leerzeichen im Verzeichnispfad es lösen würden! Vielen Dank Martin! Ich werde daran arbeiten! –

+0

In 'C: \ PYMEPOS' haben Sie auch einen Schreibzugriff. Dieser Pfad funktioniert also um beide mögliche Probleme herum. –