2010-09-23 11 views
6

¿Cómo comprobar la versión de .NET Framework al inicio de la aplicación WinForms que escribió en .NET 3.5? Si .net 3.5 no está instalado, la aplicación debe mostrar el mensaje al respecto (puede estar con el enlace en el instalador .net o en algún otro). Ahora muestra algún error que no está claro para el usuario.Verifique la versión de .Net framework desde la aplicación WinForms

+2

¿Cómo espera que su aplicación .Net 3.5 se ejecute cuando .Net 3.5 Framework no está instalado?¿Ves el catch-22 en esto? – slugster

+0

++++ slugster !!! – Aliostad

Respuesta

2

Echa un vistazo a este proyecto de C++ que debe hacer lo que estás pidiendo.

http://www.codeproject.com/KB/mcpp/DotNetTester.aspx

usted acaba de configurar los accesos directos para lanzar dicha aplicación, que a su vez poner en marcha su aplicación .NET.

De la descripción del proyecto:

Por ejemplo (prueba por un mínimo de FW 1.1 y el lanzamiento de una aplicación):

dotNetTester.exe 1.1 C: \ Temp \ Myapp.exeC: \ Temp \ Myapp.exe

2

Tienes que crear una aplicación starter escrita en .Net 2.0 o como una aplicación no administrada (para cubrir si no hay ninguna versión de .Net instalada) y comenzar primero y luego si está instalado .Net 3.5 iniciará la aplicación real, de lo contrario mostrará un mensaje de error agradable.

Sin embargo, la mejor solución sería instalar su instalador .Net 3.5, de esa manera no tendrá que preocuparse (pero obviamente esto no funcionará para la implementación de XCopy, etc.).

2

Hacer eso en una aplicación .NET 3.5 va a ser un poco difícil, ya que nunca se llega al punto donde se inicia su aplicación.

Generalmente esto se hace en el instalador de la aplicación, agregando una condición de inicio. Ver http://support.microsoft.com/kb/315291

EDIT: He encontrado un artículo que explica cómo escribir una aplicación no administrada a correr antes de que comience su aplicación .NET (como se sugiere en la respuesta de HO1) http://blogs.msdn.com/b/astebner/archive/2009/01/31/9387659.aspx

1

que vuelva a leer su pregunta - no se puede ejecutar la aplicación .NET x ver cuando .NET x no está instalado! El fin.

Si ha instalado, a continuación, por otro propósito-

Uso System.Environment.Version para encontrar la versión que está utilizando en ese momento.

Para conocer todas las versiones instaladas, check this.

Enumere las subclaves de HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP. Cada subclave es una versión .Net. Debería tener un valor de Install = 1 si está presente en la máquina, un valor de SP que muestre el paquete de servicio y un valor de MSI = 1 si se instaló utilizando un MSI. (.Net 2.0 en Vista no tiene la última, por ejemplo, ya que es parte del sistema operativo)

Puede acceder a esta clave de registro "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP" y iterar sobre los valores.

+0

Aquí hay una preocupación: Si Framework 4.0 está instalado mientras 3.5 no está ... –

+0

Leí nuevamente la pregunta, Danny, y he corregido mi respuesta. – Nayan

Cuestiones relacionadas