Domanda

Sto lavorando a un progetto che ha un formato di file proprietario. Il progetto ha un grande programma necessario per l'installazione e un visualizzatore più piccolo che non richiede installazione. Vorrei essere in grado di esportare file dalla mia applicazione principale che si aprono automaticamente .exe, ovvero puoi fare doppio clic sull'exe e il file incorporato verrà mostrato (questo per far passare il visualizzatore a persone che hanno NON installata l'applicazione principale in grado di visualizzarla - passeranno solo il documento).

Sono un po 'perso su come farlo. I miei due pensieri su cui stavo indagando sono giunti a un punto morto. Sono:

1) Incorpora il file nel visualizzatore. Posso farlo manualmente tramite Visual Studio e ne ho una demo funzionante, ma non riesco a trovare un modo per farlo al volo.

2) Creare un archivio autoestraente che estrae il file e l'exe in temp ed esegue l'exe con il nome del file sulla riga di comando. Sembra facile e possibile (anche se hacky), ma mi sono imbattuto nel problema che i programmi di archiviazione o installazione non sembrano avere la riga di comando necessaria per fare tutto questo.

Qualche idea? Preferisco il secondo perché è facile, ma il primo perché sembra più a prova di proiettile / meno hacky.

È stato utile?

Soluzione

Sebbene raggruppare l'exe nel documento per renderlo un documento ad apertura automatica sia un'idea interessante, non credo che sia la migliore soluzione al problema.Il problema è che i documenti richiedono un visualizzatore specifico che non è immediatamente disponibile.Quindi rendi il visualizzatore il più semplice possibile.

Ed è quello che Xint0 ha suggerito nei commenti.Trova un modo per rendere lo spettatore il più facilmente disponibile possibile.Non c'è bisogno di preoccuparsi della pirateria in quanto è solo un visualizzatore per un formato proprietario, quindi le uniche persone interessate saranno le persone che avranno già un documento che non possono aprire.Quindi pubblica il visualizzatore sul sito web della tua azienda e incoraggia le aziende che utilizzano il software completo a pubblicare link al visualizzatore sui loro siti web in modo che i loro clienti possano trovarlo facilmente.

Altri suggerimenti

Utilizzando il tuo metodo (1):

Se si utilizza .NET, è possibile fare in modo che il programma visualizzatore sia un assembly e il documento un altro assembly, quindi utilizzare ILMerge o simili per combinarli in un eseguibile finale.

ILMerge è un programma a riga di comando, quindi dovresti essere in grado di automatizzare questo passaggio.

In questo modo dovrebbe essere abbastanza facile avere il tuo visualizzatore personalizzato essenzialmente "carica l'altro assembly che è con me" e forse chiama una funzione sull'altro assembly per ottenere i dati.

L'unico altro pezzo del puzzle è come generare l'assembly "documento".Non sono del tutto sicuro dei passaggi, ma sembra che dovrebbe essere fattibile.

Forse usa CMake o simile per generare un progetto VStudio, quindi usa MSBuild per compilarlo in un assembly.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top