2010-06-21 13 views
5

Escribí una pequeña aplicación que necesito distribuir a más de 700 computadoras, el problema es que las computadoras pueden ejecutar cualquier versión de Windows (aunque probablemente sea XP o mejor) con cualquier versión de .NET Framework instalada con conexiones a Internet, todas de OC3 a conexión telefónica.¿Cómo distribuyo aplicaciones C# a computadoras con una versión desconocida de .Net?

Considere la inclusión de .Net con mi aplicación, pero el instalador .net es de al menos 39mb y eso tomaría literalmente horas para alguien con acceso telefónico.

Entonces, ¿hay alguna manera de agrupar los archivos DLL específicos que necesita la aplicación o convertir todo al código nativo?

Gracias --Mike

+0

Después de leer los comentarios y hacer más investigación, realmente no hay una solución para este problema, aparte de apuntar a la versión .net más baja que pueda. – edude05

Respuesta

11

Utilice un instalador.

Microsoft proporciona una solución básica para que pueda verificar las dependencias (e instalarlas si faltan) para garantizar que la computadora a la que está implementando cumple con los requisitos mínimos de Framework (y dependencia) para su aplicación.

Si necesita algo más complejo, puede usar algo como Nullsoft Scriptable Install System, InstallAware o InstallShield.

Sin embargo, tenga en cuenta que, si está creando una aplicación .NET, el usuario deberá instalar el tiempo de ejecución de una manera u otra. Un instalador simplifica las cosas al no obligarte a agrupar el instalador de .NET con tu aplicación. Permitirá al usuario descargar el tiempo de ejecución de .NET en el momento de la instalación.

Si desea eliminar la dependencia de .NET Framework, tendrá que volver a escribir la aplicación en algo que se compile en código nativo (incluso NGEN no funcionará sin la instalación del Framework).

+0

Eso, sin embargo, no impediría que los clientes necesiten descargar el marco grande si no lo tienen. –

+0

Para el porcentaje de usuarios que (a) están en acceso telefónico (solo el 10% de todos los usuarios en los EE. UU.), (B) ya no tienen el marco y (c) no tienen otro medio para obtener el marco . – Joe

+0

En realidad, no tiene que instalar el marco, solo puede incluir los dlls en la instalación, si configura Copiar local en verdadero en todos los archivos DLL necesarios y luego los empaqueta en la instalación – msarchet

0

Si no tienen el entorno de tiempo de ejecución que necesita, no tiene suerte con una solución .Net. Con un instalador, puede instalar el entorno de tiempo de ejecución apropiado si no está allí.

Realmente, si está absolutamente preocupado por las personas que descargan parte del marco, lo mejor es no usarlo. Antes de volver a escribir la aplicación en código nativo, sin embargo, realmente miraría a su audiencia para ver qué tan probable es que no la tengan, y cuál es su velocidad de conexión.

Si no desea escribirlo en código nativo, su otra apuesta es utilizar una versión inferior del marco. La penetración de mercado será mucho mayor para 1.1 que decir 4.0.

+1

Punto menor, no estoy seguro de que 1.1 sea una buena opción, creo que no está instalado en las versiones más nuevas de Windows, por lo que si alguien utilizara la versión .Net más común probablemente investigaría 1.1 vs 2.0 en su base de usuarios. –

0

De Wikipedia (no la autoridad absoluta, pero por lo general fiable sobre este tipo de cosas):

Windows Vista incluye la versión 3.0 de .NET Framework.

Así que Windows 7 incluirá esto también.

Por lo tanto, solo tiene que preocuparse por sus clientes XP.

Recientemente tuve que volver a instalar Windows XP y para cuando obtuve SP3 y todos los parches posteriores tenía instalado .NET 3.5. Aunque como estaba instalando Visual Studio también, no puedo darte una garantía del 100% de que todos tendrán la versión necesaria de.NET instalado, pero va a ser una proporción significativa, por lo que podría estar preocupado indebidamente.

0

No utilice .NET. Si no tiene control sobre el medio ambiente, necesita una amplia distribución y no quiere que se le solicite una descarga de 30 MB, entonces está prácticamente atascado con el código nativo. Tu mejor apuesta sería C++.

Alternativamente, como han sugerido otros, podría intentar usar algo como Remotesoft.

Cuestiones relacionadas