2010-10-15 8 views
15

C'è un modo per ottenere AssemblyVersion di un eseguibile .Net in Linux senza utilizzare mono? Quello che sto cercando di avere è uno script o un comando che mi consentirà di ottenere la AssemblyVersion su Linux. Ho provato: Come ottenere la AssemblyVersion di un file .Net in Linux

#strings file.exe | grep AssemblyVersion
ma solo la stringa e non il numero. Controllato anche con:
#file file.exe
ma ha ottenuto solo informazioni generali.

Qualche idea?

risposta

5

cercare di abbinare i numeri di versione che si estendono su tutta la linea:

$ strings file.exe | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' 

Nei miei (pochi) test, il AssemblyVersion del binario era sempre l'ultimo risultato.

+0

L'ho provato ma nessuno dei numeri che sto ottenendo sono la versione di assemblaggio. In effetti, non vedo l'AssemblyVerson da nessuna parte nell'output delle stringhe. – Freddy

+1

Usa '-el' sul comando stringhe per interpretare le stringhe come unicode. – Nick

8

Come consigliato da Jb Evain è possibile utilizzare Mono Disassembler.

monodis --assembly file.exe | grep Version 
+0

Questo fa il trucco. Puoi anche inserirlo in uno script nautilus in modo da poter fare clic con il pulsante destro del mouse su una DLL e visualizzarne la versione. Ho scritto un post su come farlo qui: http://ngeor.net/2014/08/view-assembly-version-on-ubuntu/ –

Problemi correlati