Plattformübergreifende Verknüpfung zu ausführbaren Dateien, beide archiviert

686
Zefir Zdravkov

Ich habe ein Verzeichnis ( das später archiviert wird ), in dem eine Verknüpfung zu einer ausführbaren Datei ( .exe ) erstellt wird, die selbst einige Verzeichnisse tiefer ist. Das erste Problem ist " .lnk ". Shortcuts erfordern einen genauen Pfad. ZB " D: /someFolder/parentOfShortcut/files/dir/dir/dir/software.exe commandForTheExe " und wenn das Verzeichnis parentOfShortcut in das Stammverzeichnis verschoben wird (z. B.), sucht die Verknüpfung weiterhin nach der App in " D: / someFolder / parentOf ... ". Ich dachte daran, eine " .bat " -Datei zu verwenden, dies ist jedoch eine reine Windows-Lösung, während die App selbst sowohl mit Linux als auch mit MacOS kompatibel ist. Das zweite Problem des " ."Dies bedeutet, dass Benutzer niemals dieser Art von Dateien vertrauen, dies gilt auch für Antivirensoftware.

Es ist ein Dilemma, dass der Speicherort von parentOfShortcut an einer beliebigen Stelle liegen kann, da Benutzer diesen Ordner herunterladen (als ZIP- Archiv) und ihn in einem beliebigen Verzeichnis auf dem Computer speichern können.

Hier sehen Sie die genaue Dateistruktur

(unknown path)/MySoftware(.zip) +- Shortcut.lnk |- files |- node_modules |- dist +- theApp.exe (with command "boot.main") 

Bearbeiten:

Die .exe- Datei kann nicht verschoben werden, da sie von den DLL- Dateien in denselben, in den oberen und einigen untergeordneten Verzeichnissen abhängt .

1
Wie ist die App selbst plattformübergreifend? Mac-Apps sind in der Regel Pakete mit der ausführbaren Datei auf einer bestimmten Ebene, myApp.app/Contents/MacOs/myApp. Daher sollten sie immer wissen, wo sie sich befinden. Tetsujin vor 5 Jahren 0
@Tetsujin Der Pfad ist nicht wirklich unbekannt; es hängt davon ab, wo der Benutzer das Archiv installiert. Zefir Zdravkov vor 5 Jahren 0
Apps werden normalerweise in / Applications oder für Einzelbenutzer ~ / Applications verwendet. Der Finder wird sowieso wissen, wo er ist. Sie werden normalerweise als dmg-Dateien mit einem praktischen Drag & Drop für Apps bereitgestellt, es sei denn, sie benötigen ein Installationsprogramm und erhöhte Berechtigungen. Tetsujin vor 5 Jahren 0
@Tetsujin Ich bin kein MacOS-Benutzer, aber die Anwendung (Electron) gibt an, ausführbar zu sein und unter dieser Plattform voll funktionsfähig zu sein. Zefir Zdravkov vor 5 Jahren 0
Sie können eine ".bat" -Datei für Windows und andere Skripte für Linux & Mac verwenden. Die übliche Lösung ist jedoch ein plattformabhängiges Installationsskript, das die Verknüpfung erstellt. harrymc vor 5 Jahren 0
sieht aus wie eine Javascript-Sache. weit außerhalb meines Fachgebiets und etwas, das Sie im Stack-Überlauf fragen sollten. Wie auch immer ... Es gibt keine plattformübergreifenden Verknüpfungen - Mac kann .lnk-Dateien nicht analysieren und Win weiß nicht, was mit einem Alias ​​zu tun ist Tetsujin vor 5 Jahren 0
@ harrymc Die plattformabhängige Installation muss in diesem Fall nur wegen der Verknüpfung erfolgen, da `.exe` selbst plattformübergreifend ausgeführt werden kann. Zefir Zdravkov vor 5 Jahren 0
@PimpJuiceIT das `exe 'stammt von einem verifizierten Herausgeber: GitHub Zefir Zdravkov vor 5 Jahren 0
@PimpJuiceIT das `exe 'ist von GitHub (und Google getrennt) und die Benutzer laden es von meiner Website herunter, nicht von github.com oder google.com, da das` .zip` Dateien und zusätzliche Software enthält, die ich produziere. Wenn Sie Chrome von einem unbekannten Herausgeber heruntergeladen haben, würden Sie einige `.bat` von der Wurzel ausführen? Ich würde es nicht tun, aber ich würde auf jeden Fall eine Verknüpfung zur App selbst herstellen, denn was könnte das für einen Schaden? Zefir Zdravkov vor 5 Jahren 0
Keine Sorge, mach was du willst und viel Glück !! Als FYI gibt es viele ZIP-Pakete, die Batch-Skripts enthalten, die aus verschiedenen Gründen optional nach dem Extrahieren ausgeführt werden. Was ich vorgeschlagen habe, ist das, was ich in vielen Paketen beschrieben habe, die Sie beschreiben. Ich bin eher ein Administrator als ein Paketentwickler, also habe ich nur vorgeschlagen, was ich als "normal und typisch" aus meiner langjährigen Arbeit an vielen Projekten ansehe, und zwar auf der Ebene der Systeme und Pakete, mit denen ich für verschiedene Unternehmen und Branchen zu tun hatte . Sie können eine Bat-Datei öffnen und deren Logik / Inhalt anzeigen, während Sie mit einem solchen Exe nicht arbeiten können. Pimp Juice IT vor 5 Jahren 0

1 Antwort auf die Frage

1
harrymc

Ich bin kein Benutzer von Electron, aber hier sind einige Ressourcen, die ich gesammelt habe.

Zum Erstellen von Desktop-Verknüpfungen benötigen Sie ein Installationsprogramm. Es gibt einige solcher plattformübergreifenden Produkte, die dazu in der Lage sind, obwohl es etwas unklar ist, wie gut sie auf den verschiedenen Plattformen funktionieren.

Da ich kein Benutzer von Electron bin, kann ich diese Produkte nicht testen, kann aber diese Details beitragen.

Für einen Elektronenbauer sagt ein Github-Post :

Stellen Sie createDesktopShortcutauf always.

"nsis": { "createDesktopShortcut": "always" } 

Gibt an, ob eine Desktopverknüpfung erstellt werden soll. Legen Sie fest, alwaysob auch bei der Neuinstallation eine Neuerstellung erfolgen soll (auch wenn vom Benutzer entfernt).

Ein StackOverflow-Post enthält verschiedene Ratschläge, fügt dies jedoch speziell für die Elektronenschmiede anscheinend für Windows hinzu:

Vielleicht möchten Sie eine Konfiguration ausprobieren, die so aussieht:

"electronPackagerConfig": { "icon": "Icon", "win32metadata":{ "ProductName": "My App", "CompanyName": "My Company" } } 

Weitere Informationen hier: https://github.com/electron-userland/electron-forge/issues/89

Eine weitere Antwort in demselben Beitrag fügt dies für den Elektronenerzeuger hinzu:

Versuchen Sie es mit einem Elektron-Builder, wenn Sie mit Eichhörnchen Schmerzen haben. Sie können den folgenden Befehl verwenden, um Ihr Installationsprogramm für Windows zu erstellen:electron-builder path/to/your-electron-packager-output --platform=win --out=path/to/your-installer-output --config=path/to/builder.json --target=win

Beispielinhalt für builder.json:

{"win": {"title": "Mein Produktionsname", "icon": "Pfad / zu / your-icon.ico", "version": "1.0.0", "Publisher": "Ihr Firmenname "}}

Ps: Sie müssen NSIS installieren und der PATH-Umgebung einen NSIS-Pfad hinzufügen, bevor Sie den obigen Befehl ausführen.

Werfen Sie einen Blick auf diesen anderen StackOverflow-Beitrag. Das Erstellen einer Desktopverknüpfung über Squirrel-Ereignisse mit Electron, die es sich lohnt, gelesen zu werden, da sie eine Prozedur zeigt, die als funktionsfähig gemeldet wird.

Sie können jedoch auf die Verwendung der Elektronen-Packager verzichten und dies selbst mit einem bewährten plattformübergreifenden Installationsprogramm wie dem folgenden durchführen:

Ich hoffe, dass Sie damit beginnen können. Gehen Sie nicht davon aus, dass einer der Elektronenpaketersteller für alle Betriebssysteme geeignet ist. Möglicherweise benötigen Sie mehr als einen. Teste alles, nimm nichts an, ist mein Rat.

Es scheint alles solide zu sein, leider habe ich Probleme mit meinem Internet und kann daher die von Ihnen bereitgestellten Ressourcen nicht überprüfen. Ich werde das morgen (Freitag) überprüfen. Zefir Zdravkov vor 5 Jahren 0
Ich denke du hast mich vergessen. harrymc vor 5 Jahren 0