Domanda

vorrei convertire il mio semplice .Net utility Console 2.0 pura in un exe portatile che ho potuto solo mettere su una chiavetta USB e correre senza doversi preoccupare se le librerie CLR e quadro sono installati su una determinata macchina o no .

alcune informazioni sull'uso Mono e Mkbundle per la creazione di self-contained exes Windows da Net-progetti, ma quello che vorrei avere è un HOWTO compatta ma utile.

Quali sono i passi minimi per il raggiungimento di un portabilità da un semplice C # progetto di Visual Studio?

È stato utile?

Soluzione

Ho trovato un semplice how-to qui , tuttavia, come non l'ho testato io stesso, non posso garantire i risultati. Come al solito YMMV.

Citazione dal l'articolo originale (si prega di seguire il filo sull'articolo originale così però):

  

Mkbundle: Gruppo Mono con le applicazioni

     

Vi siete mai chiesti perché è necessario .NET Framework o Mono installato per eseguire il programma? Beh, sarebbe molto più utile se si potesse distribuire le proprie applicazioni senza fastidioso vostri clienti di installare strutture aggiuntive, non è vero? Allora eccoci qua. Consente di impacchettare un'applicazione .NET-based con Mono, quindi non è necessario Mono, o .NET installato per eseguirlo.

     

Preparare un ambiente

     

Per prima cosa è necessario installare più recente Mono e Cygwin. Installazione di Mono è molto semplice quindi non si può rovinare tutto. Quando si avvia l'installazione di Cygwin, andare in piena vista, quindi si prega di includere 4 pacchetti aggiuntivi. Questi sono: gcc, mingw, mingw-zlib zlib e

.      

Ora è necessario un prompt dei comandi. Sia mono che Cygwin creare collegamenti per i prompt dei comandi sul desktop, ma è necessario combinarle in una sola. Ecco un batch che fa per me. Potrebbe essere necessario cambiarlo, se si dispone di altre versioni Mono per esempio.

     

Codice:

echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%

chdir C:\cygwin\bin
bash --login -i
     

Bundle un'applicazione con Mono

     

Così ora siamo in un prompt dei comandi, l'esecuzione di questo modo di Cygwin. Si noti che questo non è un prompt di DOS più, e "dir" non funziona più. Per elencare i file usare Linux comando "ls". La cartella si sta navigando ora è come quella qui sotto. Arek è un nome utente.   Codice:

C:\cygwin\home\Arek
     

Sfoglia a questa cartella con il proprio esploratore. Ora si copiano 2 file in questa cartella. 1 ° è il vostro exe applicazione e il 2 è il file Mono.dll (2MB) che si può trovare nella cartella Mono.   Codice:

C:\Program Files\Mono-2.4\bin
     

Per qualche motivo l'intera procedura non funziona con i nomi di file lunghi, in modo da rinominare l'exe applicazione. Esso deve essere conforme con questo vecchio DOS 8.3 di denominazione.

     

consente di tornare al prompt dei comandi. È necessario solo 1 comando per impacchettare la vostra applicazione, e qui è una spiegazione.

     

mkbundle è un programma all'interno del pacchetto Mono | -o Bundled1.exe specifica come l'exe Mono-bundle sarà chiamato | Winform1.exe dice quello sarà incluso, librerie Mono saranno inclusi in ogni caso | --deps è necessaria anche se non sono sicuro di quello che fa | -z sarà comprimere l'uscita exe molto

     

Codice:

mkbundle -o Bundled1.exe Winform1.exe --deps -z
     

Quindi, ora avete ottenuto il vostro Bundled1.exe, che contiene la propria applicazione con Mono stessa. Non dovrebbe essere necessario Mono .NET né per eseguirlo. Si noti che sarà 4MB o più in termini di dimensioni. Quei exes in bundle non sono leggeri.

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