Pregunta

Me gustaría evitar redistribuir .NET runtime si es posible con mi aplicación, ya que aumentará el tamaño de la aplicación, el tiempo de descarga, el tiempo de desarrollo & amp; posiblemente introducirá muchos errores de implementación diferentes. ¿Microsoft obliga a los usuarios a actualizar .NET runtime a través de la actualización de Windows? Si no, ¿cuáles son algunas de las opciones para redistribuir .NET runtime? ¿Microsoft ha hecho que sea más fácil redistribuir el tiempo de ejecución con las aplicaciones .NET? Además, ¿se garantiza que el tiempo de ejecución de .NET sea compatible con versiones anteriores?

Solo estoy resumiendo las respuestas aquí. Parece que tenemos que tener un programa de arranque para al menos verificar la existencia del tiempo de ejecución de .NET. La opción alternativa es empaquetar el tiempo de ejecución e implementarlo si no existe. Hay múltiples opciones para empaquetar & Amp; Visual Studio proporciona una opción para construir un proyecto de instalador con el tiempo de ejecución. También hay otras opciones de empaque como InnoSetup, WIX, etc. (no estoy seguro de qué opción es mejor y gratuita). La instalación en tiempo de ejecución requiere un reinicio y la opción de instalación elegida debería reanudar la instalación de la aplicación después del reinicio.

¿Fue útil?

Solución

Además, debería preocuparse por eso. Sin el tiempo de ejecución, su aplicación no funcionará misteriosamente. Nunca debe suponer que alguna versión particular del tiempo de ejecución está preinstalada.

Como se señaló anteriormente, el asistente de instalación del proyecto en VS creará un archivo de configuración que solo lo descargará si es necesario. NSIS e Inno Setup tienen scripts que harán lo mismo. Tenga en cuenta que tendrá que manejar la configuración de reinicio y continuación cuando instale el tiempo de ejecución. Creo que el asistente de instalación maneja esto por usted.

Otros consejos

Simplemente haga un proyecto de Windows Installer. Debe tener esto como una opción en VS2005 y VS2008. Al instalar su aplicación, se asegurará de que el sistema tenga el tiempo de ejecución de .NET y cualquier otro software requerido. Esto lo agregará a su paquete de instalación, no a su aplicación. Por lo general, así es como instala sus aplicaciones o utiliza Install Shield.

Aquí hay una guía .

texto alternativo http://img154.imageshack.us/img154/2066/newprojectr .png

Cuando crea su paquete de instalación, solo instalará el tiempo de ejecución si es necesario. es decir, aún no está en el sistema (o versión incorrecta)

Editar: Sí, deberías crear este paquete, te hace la vida mucho más fácil para esto. La forma en que haría esto en VS es File - & Gt; Project y seleccione intstaller project. El asistente lo guiará a través de las opciones.

Usando un programa de arranque de algún tipo, puede verificar si .NET está instalado y luego descargarlo si es necesario.

Por ejemplo, con el MSI Factory bootstrapper (no estoy abogando por MSI Factory, es un programa feo. Pero el programa de arranque con el que viene vale la pena el costo de la licencia si está desarrollando un software comercial como nosotros) hay scripts que simplemente puede incluir para realizar esta función. Estamos usando WiX + el programa de arranque de MSI Factory para distribuir tanto un solo EXE comprimido (30Mb) como un pequeño <;> "; descargador &"; EXE que descarga un MSI. Ambos EXE comprueban la presencia de .NET 2.0 y luego lo descargan si es necesario. También distribuimos un MSI independiente que también comprueba .NET y bloquea la instalación si no está presente.

Básicamente tienes lo siguiente:

  • Windows XP: no se incluye con .NET. El cliente debe instalarlo manualmente (aparece como un componente opcional de Windows Update)
  • Vista: se entrega con .NET 2.0 (pero no 1.1)
  • Server 2003 - se entrega con .NET 1.1

Ignora .NET 1.1, simplemente ignóralo. Los usuarios de Vista y más allá solo lo tendrán instalado para el soporte de aplicaciones heredadas, o si son desarrolladores.

.NET 2.0 es la versión más comúnmente instalada, desde nuestra base de usuarios hemos encontrado que menos del 10% de los usuarios tienen instalado .NET 3.5. Si su aplicación está dirigida a una audiencia técnica y geek, diría que ~ 50% de las personas tendrán .NET 3.0. Si se dirige a un mercado de consumo / minorista / no tecnológico, probablemente pueda estimar alrededor del 30% con .NET 2.0 y el 10% con .NET 3.0 o superior.

Las cifras anteriores se basan en el tráfico del navegador a nuestros sitios web, una audiencia en su mayoría no técnica. Esta es probablemente la mejor manera de tener una idea para su mercado. IE siempre informa la versión .NET en la cadena de agente de usuario, así que separe los weblogs y comience a analizar :)

Depende. Donde trabajo, lo incluimos en el instalador como requisito previo porque tenemos algunos clientes que pueden no tener una conexión a Internet para descargar el tiempo de ejecución.

Algunas cosas que puede hacer:

  1. Incluya una prueba para la versión de .NET en la máquina de destino y salga de la instalación si no está allí.
  2. Cree una versión de la instalación que incluya el tiempo de ejecución .NET y la instalará si es necesario.
  3. Cree una versión de la instalación que descargará el tiempo de ejecución de .NET e instálela si es necesario.

Si supiera que todos mis clientes están en línea, haría la opción 3 para .NET, así como cualquier otro requisito previo como Crystal Reports o SQL Express. Tengo instalaciones donde tengo eso incluido y la instalación supera los 100 MB. Más de 70 MB son requisitos previos.

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