¿Qué FrameWork estoy usando?

Fecha: 09/Ago/2004 (06/Ago/2004)
Autor: Unai Zorrilla Castro

 


Existen varias formas de averiguar este dato, algunas más rápidas y otras más trabajosas de implementar, la más sencillita y rápida es usar System.Environment.Version la cual nos proporcionará tanto la versión Mayor-Menor como el número de compilación del FrameWork con el que se está ejecutando una aplicación. El tip de código que viene a continuación es un poco más lioso, pero también más didáctico, en el se hace uso de una llamada a una dll mediante InteropServices, la dll en cuestión es mscoree.dll y dentro de su interface pública contiene un método GetCORVersion el cuál nos proporcionará el dato pedido. Este podría ser un ejemplo de llamadas externas a funciones, por lo que espero lo encontreis un poquito interesante.

El código del truco es:

using System;
using System.Runtime.InteropServices;
using System.Text;
namespace FrameWorkInfo
{
   public class Info
   {
     //Llamadas a la libreria
     [DllImport("mscoree.dll")] 
     static extern Int32 GetCORVersion ([MarshalAs(UnmanagedType.LPWStr)] StringBuilder buffer,Int32 buflen, ref Int32 numbytes); 
     public static string Version()
     {
       int lenght = 1024;
       StringBuilder buffer = new StringBuilder(lenght);
       Int32 NBytes = 0;
       Int32 retorno = GetCORVersion(buffer,buffer.Capacity, ref NBytes);
       return buffer.ToString().Substring(0,NBytes-1); 
     }
   } 
}

ir al índice