2016-04-23 8 views
0

Ich versuche, eine eigenständige .exe-paketierte Ruby Shoes-App zu erstellen, die Bilder dynamisch verwendet, also die Bilder, die sich im Ordner der .exe-Datei befinden.Wie bekomme ich eine .exe-verpackte Ruby Shoes-App, um Ressourcen außerhalb des Pakets zu referenzieren?

Shoes.app() { 
    background "bg.jpg" 
} 

Dieser Code funktioniert, wenn das Bild im gleichen Ordner ist, wenn die Exe verpackt sind, und das Bild scheint in die Exe verpackt werden, da sie nicht im selben Ordner wie die EXE für sie gebraucht werden um beim Ausführen der exe angezeigt zu werden. Wenn Sie möchten, dass die Datei in den gleichen Ordner wie die EXE-Datei geladen wird, wird die App ohne das Bild jedoch nicht angezeigt. Ich habe verschiedene Wege ausprobiert, den absoluten Pfad zum aktuellen Verzeichnis zu finden, von dem die EXE-Datei gestartet wird, aber alle scheinen auf ein temporäres Verzeichnis unter AppData zu zeigen und nicht dort, wo sich die .exe-Datei befindet.

Antwort

0

Aufruf PWD sollten Sie bekommen, was Sie wollen
Nö, Ok leider jetzt get it! :-)
Schuhe öffnet Ihre exe/shy in AppData/temp so Verzeichnis arbeiten und __FILE__ beide dort Punkt !
Jemand hat vor einiger Zeit dies vorgeschlagen: Trying to access the "current dir" in a packaged Shoes app

muss ein besserer Weg sein!

EDIT:
Sie wahrscheinlich benutzerdefinierte Verpacker möchten (Check "i erweiterte Optionen installieren möchten")
Check "Expand schüchtern in Benutzerverzeichnis"
Sie, wie Sie für regelmäßige Verpackung getan.
Jetzt, wenn Sie die exe starten, werden Sie gefragt (oder der Benutzer), wo Sie Ihre App installieren, fortfahren, notieren Sie das Verzeichnis.
Nun, bevor die installierte App füttern die erwähnte Verzeichnis mit Ihren Ressourcen starten und sollten Sie ok

Einige Referenzen sein: https://github.com/Shoes3/shoes3/wiki/Custom-Install-Scripts (es viel mehr, es ist)
https://github.com/Shoes3/shoes3/issues/247#issuecomment-213919829

+0

Ich bemerkte diesen Beitrag, aber leider die Problemumgehungen vorgeschlagen, es ist nicht wirklich für mein Projekt lebensfähig. – MaloW

+0

Wenn Sie versuchen, was Sie in Ihrem Schnitt geschrieben habe, bleibe ich wie folgt stecken: http://i.imgur.com/CzTIXRm.png Windows Repack, es sagt und es gibt mir nie eine Exe-Datei. – MaloW

+0

@MaloW, haben Sie ein Installationssymbol ausgewählt? Ich stecke auch fest, wenn ich keinen auswähle. – guest

0

Edit: meine erste Antwort war unvollständig. Windows ist etwas seltsam in Shoes für verpackte Apps. Schreibe ein kleines Testskript.

Shoes.app do 
    stack do 
    para "DIR: #{DIR}" 
    para "LIB_DIR: #{LIB_DIR}" 
    cdir = Dir.getwd 
    para "CWD: #{cdir}" 
    end 
end 

Dir.getwd ist wahrscheinlich, was Sie wollen.

+0

Hey, danke für die Antwort, aber Dir.getwd gibt immer noch C:/Users/ /AppData/Local/Temp/shoes-min.4268 zurück, wenn es von einer .shy oder .exe Datei ausgeführt wird. LIB_DIR gibt C:/Users//AppData/Local/Shoes zurück, und DIR gibt C:/Program Files (x86)/Shoes zurück – MaloW