Frage

Ich arbeite an einem Projekt mit einem proprietären Dateiformat. Das Projekt verfügt über ein großes Programm, das für die Installation erforderlich ist, und einen kleineren Viewer, für den keine Installation erforderlich ist. Ich möchte in der Lage sein, Dateien aus meiner Hauptanwendung zu exportieren, die sich selbst öffnende EXE-Dateien sind. Das heißt, Sie können auf die Exe doppelklicken und die eingebettete Datei wird angezeigt (dies dient dazu, den Viewer an Personen weiterzugeben, die dies getan haben NICHT installiert die Hauptanwendung, die es anzeigen kann - sie wird nur das Dokument weitergeben).

Ich bin ein wenig verloren, wie das geht. Meine beiden Gedanken, die ich untersucht habe, sind in eine Sackgasse geraten. Sie sind:

1) Betten Sie die Datei in den Viewer ein. Ich kann dies manuell über Visual Studio tun, und ich habe eine funktionierende Demo davon, aber ich kann keinen Weg finden, dies im laufenden Betrieb zu tun.

2) Erstellen Sie ein selbstextrahierendes Archiv, das die Datei und die Exe auf Temp extrahiert und die Exe mit dem Dateinamen in der Befehlszeile ausführt. Das klingt einfach und möglich (wenn auch hackig), aber ich bin auf das Problem gestoßen, dass Archivierungs- oder Installationsprogramme nicht über die dafür erforderliche Befehlszeile zu verfügen scheinen.

Irgendwelche Ideen? Ich bevorzuge das zweite, weil es einfach ist, aber das erste, weil es kugelsicherer / weniger hackig erscheint.

War es hilfreich?

Lösung

Obwohl es eine coole Idee ist, die Exe in das Dokument zu bündeln, um es zu einem sich selbst öffnenden Dokument zu machen, denke ich nicht, dass dies die beste Lösung für das Problem ist.Das Problem ist, dass für die Dokumente ein bestimmter Viewer erforderlich ist, der nicht ohne weiteres verfügbar ist.Machen Sie den Betrachter so einfach wie möglich.

Und genau das hat Xint0 in den Kommentaren vorgeschlagen.Finden Sie einen Weg, um den Betrachter so schnell wie möglich verfügbar zu machen.Sie müssen sich keine Sorgen um Piraterie machen, da es sich nur um einen Viewer für ein proprietäres Format handelt. Die einzigen Personen, die daran interessiert sind, sind Personen, die bereits ein Dokument haben, das sie nicht öffnen können.Veröffentlichen Sie den Viewer auf Ihrer Unternehmenswebsite und ermutigen Sie die Unternehmen, die die vollständige Software verwenden, Links zum Viewer auf ihren Websites zu veröffentlichen, damit ihre Kunden ihn leicht finden können.

Andere Tipps

Verwenden Sie Ihre Methode (1):

Wenn Sie .NET verwenden, können Sie Ihr Viewer-Programm zu einer Assembly und Ihr Dokument zu einer anderen Assembly machen. Verwenden Sie dann ILMerge oder ähnliches, um sie zu einer endgültigen ausführbaren Datei zu kombinieren.

ILMerge ist ein Befehlszeilenprogramm, daher sollten Sie diesen Schritt automatisieren können.

Auf diese Weise sollte es ziemlich einfach sein, dass Ihr angepasster Viewer im Wesentlichen nur "die andere Assembly lädt, die bei mir ist" und möglicherweise eine Funktion auf der anderen Assembly aufruft, um die Daten abzurufen.

Das einzige andere Puzzleteil ist das Generieren der 'Dokument'-Baugruppe.Ich bin mir der Schritte nicht ganz sicher, aber es scheint, als ob es machbar sein sollte.

Verwenden Sie möglicherweise CMake oder ähnliches, um ein VStudio-Projekt zu generieren, und verwenden Sie dann MSBuild, um es in eine Assembly zu integrieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top