Question

Je travaille sur un projet qui a un format de fichier propriétaire. Le projet dispose d'un grand programme d'installation et d'une visionneuse plus petite qui ne nécessite aucune installation. Je voudrais pouvoir exporter des fichiers à partir de mon application principale qui sont «auto ouverture» .exe - c'est-à-dire que vous pouvez double-cliquer sur l'EXE et le fichier intégré sera affiché (c'est pour faire le passage à la visionneuse des personnes qui ont Non installé l'application principale capable de le visualiser - ils ne feront que passer le document).

Je suis un peu perdu sur la façon de faire ça. Mes deux pensées sur lesquelles j'ai enquêté sont arrivées à une impasse. Elles sont:

1) Intégrez le fichier dans la visionneuse. Je peux le faire manuellement via Visual Studio, et j'en ai une démo de travail, mais je ne peux pas trouver un moyen de le faire à la volée.

2) Créez une archive auto-extraite qui extrait le fichier et l'EXE à TEMP et exécute l'EXE avec le nom du fichier sur la ligne de commande. Cela semble facile et possible (bien que Hacky), mais j'ai rencontré le problème que les programmes d'archives ou d'installation ne semblent pas avoir la ligne de commande nécessaire pour faire tout cela.

Des idées? Je préfère la seconde parce que c'est facile, mais le premier car il semble plus d'épreuve par balle / moins de piratage.

Était-ce utile?

La solution

Bien que regrouper l'EXE dans le document pour en faire un document d'auto-ouverture est une idée cool, je ne pense pas que ce soit la meilleure solution au problème. Le problème est que les documents nécessitent une visionneuse spécifique qui n'est pas facilement disponible. Rendez donc le spectateur aussi facile à obtenir que possible.

Et c'est ce que Xint0 a suggéré dans les commentaires. Trouvez un moyen de rendre le spectateur aussi facilement disponible que possible. Pas besoin de s'inquiéter du piratage car ce n'est qu'un spectateur pour un format propriétaire, donc les seules personnes intéressées seront des gens qui auront déjà un document qu'ils ne pourront pas ouvrir. Publiez donc la visionneuse sur le site Web de votre entreprise et encouragez les entreprises à l'aide du logiciel complet pour publier des liens vers le spectateur sur leurs sites Web afin que leurs clients puissent facilement le trouver.

Autres conseils

En utilisant votre méthode (1):

Si vous utilisez .NET, vous pouvez faire en sorte que votre programme de visionneuse soit un seul assemblage, et votre document est un autre assemblage, puis utilisez ILmerge ou similaires pour les combiner en un seul exécutable final.

Ilmerge est un programme de ligne de commande, vous devriez donc pouvoir automatiser cette étape.

De cette façon, il devrait être assez facile d'avoir votre visionneuse personnalisée essentiellement "charger l'autre assemblage avec moi" et peut-être appeler une fonction sur l'autre assemblage pour obtenir les données.

La seule autre pièce du puzzle est de savoir comment générer l'assemblage «document». Je ne suis pas entièrement sûr des étapes, mais il semble que cela devrait être faisable.

Utilisez peut-être CMake ou similaire pour générer un projet VStudio, puis utilisez MSBuild pour le construire dans un assemblage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top