Domanda

Sto cercando di creare un registro diagnostico per la mia applicazione che visualizza il numero dell'ultima versione di un assembly installato nella GAC. Ad esempio, ci sono due versioni dello stesso assembly nel GAC: foo.dll versione 1.0.0.0 e 2.0.0.0 foo.dll versione. Ho bisogno di una funzione simile al seguente:

GetLatestGacVersion("foo.dll");  // returns "2.0.0.0"

Qualcuno sa il modo migliore per fare questo?

Grazie!

È stato utile?

Soluzione

soluzione più semplice è:

Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version

, che verrà automaticamente vi darà l'assemblaggio di ultima versione dal GAC.

Si prega di notare che il metodo è deprecato per buone ragioni. Chiedere per una versione non specifico dal GAC sta per causare possibilmente un sacco di guai.

Senza sapere che cosa si vuole fare è difficile dare ulteriori consigli, ma in generale, se siete alla ricerca di una versione specifica si dovrebbe piuttosto sondare perché invece di caricare "qualcosa".

Altri suggerimenti

Utilizzando un gestiti involucro intorno al Fusion API (fusion.dll) si potrebbe enumerare gli assembly nel GAC, li filtro per nome e ordine dalla versione.

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