Dopo l'imballaggio con Mkbundle2, la macchina di destinazione si lamenta di libmono.so.Perché?

StackOverflow https://stackoverflow.com/questions/3250752

  •  15-09-2020
  •  | 
  •  

Domanda

Pensavo che lo scopo di mkbundle2 fosse quello di consentire una macchina senza installare Mono per eseguire un'applicazione mono. Ma non sembra imballaggio libmone.so. Non sono sicuro che se fosse o meno o meno, ma la macchina di destinazione si lamenta che non riesce a trovare libmono.so.0 quando corro il pacchetto. Perché sarebbe cercato quel file? E se è necessario, perché sembrerebbe ovunque ma nel pacchetto? E se dovrebbe essere nel pacchetto, perché Mkbundle2 non ha messo lì? Sto usando l'opzione "-Deps" per includere tutte le dipendenze. Mi manca qualcosa?

Dopo aver aggiunto l'opzione --statica, ottengo questo risultato sulla macchina di destinazione:

Eccezione non gestita: System.TypeinitiializzazioneException: un'eccezione è stata lanciata dall'inizializzazione del tipo per System.Windows.Forms.xplatui ---> System.dllnotFoundException: libc AT (wrapper gestito-to-native) System.Windows.Forms.xplatui: Uname (INTPTR) su System.Windows.Forms.xplatui..cctor () [0x00000] in: 0

Utilizzo dell'esportazione mono_log_level= Debug Mostra più informazioni:

. Mono-info: Dllimport Tentativo di caricare: "libc". Mono-info: Dllimport Loading Ubicazione: 'libc.so'. Mono-info: Dllimport Error Error Caricamento della libreria: '/usr/lib64/libc.so: intestazione ELF non valida. Mono-info: libreria di caricamento Dllimport: './libc.so'. Mono-info: Dllimport Error Error Loading Library './libc.so: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo o directory. Mono-info: Dllimport Loading: 'libc'. Mono-info: Dllimport Error Error Caricamento della libreria 'libc: impossibile aprire il file oggetto condiviso: nessun file o directory ".

Questo significa che sto cercando di correre su macchina con hardware incompatibile? Entrambe le macchine sono SUSE Linux Enterprise Server 11 (X86_64).

È stato utile?

Soluzione

Da qui abbiamo questo: .

- Deps: questa opzione accorgerà tutte le assemblee di riferimento per il Assemblee elencate sull'opzione della riga di comando. Questo è utile per distribuire un'immagine autonoma.

Sei sicuro di non dimenticare di fare riferimento a un assembly sulla riga di comando?

Da questo thread:

Comunità mono> Generale> Comunità mono> Mkbundle, Static , lgmodule

Sembra che Mkbundle non sia responsabile per il confezionamento di questo assemblaggio. L'utente ha risolto il problema installando i pacchetti relativi a GLIB mancanti.

Dai un'occhiata al parametro statico qui :

.

- Statico: per impostazione predefinita MKBundle collega dinamicamente a Mono e GLIB . Questa opzione. lo causa al collegamento staticamente.

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