O projeto de configuração do VS2008 sempre requer o .NET 3.5 no momento da instalação, mas eu não preciso dele!

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

  •  09-06-2019
  •  | 
  •  

Pergunta

1, Crie e construa um projeto padrão do Windows Forms e observe as propriedades do projeto.Diz que o projeto tem como alvo o .NET Framework 2.0.

2, Crie um projeto de instalação que instale apenas o único executável do projeto Windows Forms.

3, Execute esse instalador e ele sempre diz que precisa instalar o .NET 3.5 SP1 na máquina.Mas obviamente ele só precisa do 2.0 e, portanto, não quero que os clientes sejam forçados a instalar o .NET 3.5 quando não precisarem dele.Eles podem já ter o 2.0 instalado e, portanto, forçar a atualização não é desejável!

Examinei os pré-requisitos do projeto de instalação e verifiquei a entrada do .NET Framework 2.0 e todo o resto está desmarcado.Portanto, não consigo encontrar nenhum motivo para esse estranho requisito de tempo de execução.Alguém sabe como resolver isso?

Foi útil?

Solução

Não há necessidade de editar o arquivo manualmente.A dica está logo acima do GUID: "LaunchCondition".

  1. Clique com o botão direito no projeto de configuração
  2. Selecione "Visualizar" -> "Condições de lançamento"
  3. Expanda o nó "Condições de inicialização" se ainda não estiver expandido
  4. Clique com o botão direito no nó ".NET Framework" e selecione "Janela de Propriedades"
  5. Na janela “Propriedades” altere o valor “Versão” para o valor apropriado, no seu caso 2.0.50727.

Não sei por que isso não está definido corretamente desde o início.

Outras dicas

Mesmo se você estiver visando uma implantação 2.0, alguns de seus assemblies poderão exigir 3.5.Por exemplo, o LINQ requer 3.0.Isso deve, no entanto, ser refletido quando você constrói.Verifique cada montagem para garantir que seja compatível com 2.0.Você não quer que nenhuma coisa 3,5 entre furtivamente.Se for esse o caso, meu palpite seria uma biblioteca de controle de terceiros com suporte para WPF.

Finalmente encontrei a resposta para minha própria pergunta.

Comparando os arquivos dos projetos usando o Notepad notei que um projeto de configuração no VS2008 possui uma entrada que solicita a versão 3.5 e a mesma seção no projeto VS2005 foi marcada como 2.0.O que é estranho é que a seção parece algo que você não pode alterar manualmente no ambiente do Visual Studio e, portanto, você é forçado a atualizar o arquivo do projeto manualmente.Em qualquer lugar aqui está a área ofensiva do arquivo do projeto para aqueles que se deparam com o mesmo 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"
            }
        }
    }

Sempre usei o Innosetup para implantar meus projetos.É muito rápido e muito personalizável.Não há quase nada que você não possa fazer com um pouco de script.O Innosetup pode detectar qual versão do Framework está instalada e avisar o usuário se a versão correta não estiver presente (com script).

Recomendo que você experimente ferramentas de implantação alternativas como o Innosetup e veja se gosta delas.Há uma grande oportunidade lá fora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top