2008-09-16 7 views
11

1, cree y cree un proyecto predeterminado de Windows Forms y observe las propiedades del proyecto. Dice que el proyecto apunta a .NET Framework 2.0.VS2008 Setup Project siempre requiere .NET 3.5 en el momento de la instalación, pero no lo necesito.

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 y por eso no quiero que los clientes se vean obligados a instalar .NET 3.5 cuando no lo necesiten. ¡Es posible que ya tengan 2.0 instalado y forzar la actualización no es deseable!

He examinado los requisitos previos del proyecto de configuración y comprobé la entrada de .NET Framework 2.0 y todo lo demás está desmarcado. Así que no puedo encontrar ninguna razón para este extraño requisito de tiempo de ejecución. ¿Alguien sabe cómo resolver este?

Respuesta

21

No hay necesidad de editar el archivo manualmente. La sugerencia está justo encima del GUID allí: "LaunchCondition".

  1. Haga clic derecho en el proyecto de instalación
  2. Seleccione "Ver" -> "de condiciones de inicio"
  3. Expandir el nodo "de condiciones de inicio" si no está ya expandido
  4. Haga clic derecho en el" .NET Ventana "Propiedades y nodo" del Framework "
  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 adecuadamente desde el principio.

1

Incluso si tiene como objetivo una implementación 2.0, algunos de sus ensamblajes pueden requerir 3.5. Por ejemplo, LINQ requiere 3.0. Esto debería, sin embargo, ser reflejado cuando construyes. Compruebe cada conjunto para asegurarse de que sea compatible con 2.0. No quiere que nada de 3.5 se filtre. Si este es el caso, supongo que sería una biblioteca de control de terceros compatible con WPF.

1

Finalmente encontré la respuesta a mi propia pregunta.

Comparación de los archivos de proyecto con el Bloc de notas Me di cuenta de 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 se marcó como 2.0. Lo extraño es que la sección se ve como algo que no se puede modificar manualmente en el entorno de Visual Studio y, por lo tanto, se ve obligado a actualizar el archivo de proyecto manualmente. En cualquier lugar aquí es el área afectada del archivo de proyecto para los que se encuentra 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" 
      } 
     } 
    } 
0

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 e indicarle si la versión correcta no está presente (con scripts).

Te recomiendo que pruebes herramientas de implementación alternativas como Innosetup y veas si te gustan. Hay una gran cantidad de oportunidades por ahí.

Cuestiones relacionadas