Pregunta

Puede ser que sea una pregunta estúpida, pero todos mis intentos para google esto falló. La pregunta es: ¿Cómo se puede desarrollar aplicaciones de Windows que no necesitan un redistribuible preinstalado? Quiero crear aplicaciones que se ejecutan también en las versiones anteriores de Windows que no tienen el .NET Framework o algo similar incluido.

Gracias, eWolf

¿Fue útil?

Solución

En primer lugar, programa en un lenguaje nativo, como C ++, sin CLR.

En segundo lugar, desactivar manifiesto y evitar la vinculación de DLL externos (tales como STDC o MFC).

Otros consejos

¿Qué quiere decir con versiones anteriores de Windows?
.NET Framework es parte de Windows desde Windows 2003 y .NET 1.1.
Así que si se dirigen a las versiones de Windows más nuevos que Windows 2003, puede estar seguro de que .NET está disponible.

También hay soluciones, que automatizar vincular / embalaje de productos .NET, por lo que no se necesita enviar ningún redistributables etc.

Actualización:
Me acabo de enterar que Mono te permite enlazar todo el tiempo de ejecución en su ejecutable.
Se llaman a esa característica Paquete .
Lee más sobre esto aquí .

El uso de Delphi - a pesar de las nuevas versiones del IDE tienen algunos errores impares, es fácil crear aplicaciones nativas de Windows que no necesitan un redistribuible. Mucho más fácil de usar que C ++ / Win32.

Editar:. Como eWolf señaló que no necesitaba el .NET, a pesar de la pregunta original etiquetado como NET

En resumen, algunas máquinas antiguas, tales como Win95 / 98/2000 pueden no tener instalado el tiempo de ejecución. Desde que ha especificado .NET, estoy asumiendo que usted quiere construir una aplicación que utiliza .NET, hay un gran pero, es necesario tener el tiempo de ejecución .NET instalado de antemano se puede ejecutar la aplicación .NET. Usted puede conseguir fácilmente en torno a que por dos métodos:

  • Instalar el tiempo de ejecución .NET manualmente o
  • Usar un script instalador personalizado que puede detectar si el tiempo de ejecución .NET está instalado o no, para instalar el redistribuible de .NET en tiempo de ejecución.

Si usted está hablando de una aplicación nativa, tales como C / C ++, el mejor camino a seguir (para evitar dependencias y reducir al mínimo el número de requerido de DLL) está, desarrollarlo en WinAPI32 prima, utilizando sólo el estándar DLL de que muchos de las máquinas de Windows tendrán, COMMCTRL.DLL, USER32.DLL, ADVAPI.DLL, por nombrar sólo unos pocos. El resultado final será un ejecutable más pequeño. Por supuesto, puede agrupar otra DLL mediante la vinculación estática en conjunto de la DLL para formar una gran ejecutable mamut.

Le recomiendo que use la WTL , que es un marco ligero C ++. Es sólo un paso por encima de la API de Win32 en realidad, para que pueda obtener pequeños EXE con pocas dependencias. WTL requiere el marco ATL que se puede enlazar estáticamente a, que significa que sólo necesita enviar el archivo EXE.

Otra marco vale la pena mirar es Qt . Sin embargo, esto requiere que envíe algunos archivos DLL con su solicitud. Qt es un marco fantástico y creo que usted encontrará que es más productivo que WTL (dependiendo de sus necesidades de aplicación, por supuesto.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top