El proyecto de instalación VS2008 siempre requiere .NET 3.5 en el momento de la instalación, ¡pero no lo necesito!

StackOverflow https://stackoverflow.com/questions/68561

  •  09-06-2019
  •  | 
  •  

Pregunta

1. Cree y construya un proyecto de Windows Forms predeterminado y observe las propiedades del proyecto.Dice que el proyecto está dirigido a .NET Framework 2.0.

2. Cree un proyecto de instalación que instale solo el ejecutable del proyecto de Windows Forms.

3. Ejecute ese instalador y siempre dice que necesita instalar .NET 3.5 SP1 en la máquina.Pero obviamente solo necesita 2.0, por lo que no quiero que los clientes se vean obligados a instalar .NET 3.5 cuando no lo necesitan.Es posible que ya tengan instalada la versión 2.0 y, por lo tanto, no es deseable forzar la actualización.

Revisé los requisitos previos del proyecto de instalación y verifiqué la entrada .NET Framework 2.0 y el resto no está marcado.Entonces no puedo encontrar ninguna razón para este extraño requisito de tiempo de ejecución.¿Alguien sabe cómo resolver este?

¿Fue útil?

Solución

No es necesario editar el archivo manualmente.La pista está justo encima del GUID: "LaunchCondition".

  1. Haga clic derecho en el proyecto de instalación.
  2. Seleccione "Ver" -> "Condiciones de inicio"
  3. Expanda el nodo "Condiciones de lanzamiento" si aún no lo está
  4. Haga clic derecho en el nodo ".NET Framework" y seleccione "Ventana de propiedades"
  5. En la ventana "Propiedades" cambie el valor "Versión" al valor apropiado, en su caso 2.0.50727.

No estoy seguro de por qué esto no está configurado correctamente desde el principio.

Otros consejos

Incluso si su objetivo es una implementación 2.0, algunos de sus ensamblados pueden requerir 3.5.Por ejemplo, LINQ requiere 3.0.Sin embargo, esto debería reflejarse cuando construyas.Verifique cada ensamblaje para asegurarse de que sea compatible con 2.0.No querrás que se cuelen cosas 3.5.Si este es el caso, supongo que sería una biblioteca de control de terceros compatible con WPF.

Finalmente encontré la respuesta a mi propia pregunta.

Al comparar los archivos de proyectos usando el Bloc de notas, noté que un proyecto de instalación en VS2008 tiene una entrada que solicita la versión 3.5 y la misma sección en el proyecto VS2005 estaba marcada como 2.0.Lo extraño es que la sección parece algo que no se puede modificar manualmente dentro del entorno de Visual Studio y, por lo tanto, se ve obligado a actualizar el archivo del proyecto manualmente.En cualquier lugar aquí está el área ofensiva del archivo del proyecto para aquellos que se encuentren con el mismo problema...

"Deployable"
{
    "CustomAction"
    {
    }
    "DefaultFeature"
    {
    "Name" = "8:DefaultFeature"
    "Title" = "8:"
    "Description" = "8:"
    }
    "ExternalPersistence"
    {
        "LaunchCondition"
        {
            "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D"
            {
            "Name" = "8:.NET Framework"
            "Message" = "8:[VSDNETMSG]"
            "Version" = "8:3.5.30729"  <--- UPDATE THIS TO 8:2.0.50727
            "AllowLaterVersions" = "11:FALSE"
            "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
            }
        }
    }

Siempre he usado Innosetup para implementar mis proyectos.Es muy rápido y muy personalizable.No hay casi nada que no puedas hacer con un poco de scripting.Innosetup puede detectar qué versión de Framework está instalada y avisar al usuario si la versión correcta no está presente (con secuencias de comandos).

Le recomiendo que pruebe herramientas de implementación alternativas como Innosetup y vea si le gustan.Hay una gran cantidad de oportunidades ahí fuera.

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