2011-05-11 21 views
6

Sé cómo obtener la versión de una aplicación en ejecución o dll. Sin embargo, necesito encontrar las propiedades de una aplicación no ejecutable.Obtener la versión del archivo ejecutable no ejecutable

Tengo un pequeño programa para establecer una asociación de archivos para mi aplicación principal. No tiene sentido que los usuarios de versiones anteriores lo ejecuten ya que la aplicación no acepta argumentos al inicio. Entonces, cuando el asociador de archivos se inicia, primero verifica si puede encontrar la aplicación principal. Si puede, entonces quiero verificar las propiedades sin ejecutarlo. Si la versión es anterior a una que pueda aceptar argumentos, entonces quiero decirle a mi usuario que actualice en lugar de proceder a establecer la asociación.

He examinado System.IO.FileInfo pero parece que no incluye ninguna información de la versión.

Gracias

+0

Los archivos no tienen información sobre la versión en Windows. – Hogan

+2

@hogan Aparentemente, los archivos .exe y .dll almacenan esta información en alguna parte, porque puede verla haciendo clic con el botón derecho, seleccionando Propiedades y luego Detalles. Está allá. – dandan78

+2

Los archivos PE pueden tener información de versión en Windows. Está dentro de un recurso incrustado en el archivo PE. – CodesInChaos

Respuesta

11

Puede utilizar FileVersionInfo.GetVersionInfo():

FileVersionInfo vi = FileVersionInfo.GetVersionInfo("myfile.dll"); 

cadena showVersion = vi.FileVersion;

// showVersion es la versión actual Nº

Esta metadatos del archivo/documento de devolución y se puede utilizar para DLL no administrados o incluso documentos de texto, así.

También puede utilizar Asamblea:

Version v = Assembly.ReflectionOnlyLoadFrom("myfile.dll").GetName().Version; 

Esto va a contener. información de la versión NET.

+0

¡Exactamente lo que necesitaba y tan simple! – ScruffyDuck

Cuestiones relacionadas