O projeto de configuração do VS2008 sempre requer o .NET 3.5 no momento da instalação, mas eu não preciso dele!
-
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?
Solução
Não há necessidade de editar o arquivo manualmente.A dica está logo acima do GUID: "LaunchCondition".
- Clique com o botão direito no projeto de configuração
- Selecione "Visualizar" -> "Condições de lançamento"
- Expanda o nó "Condições de inicialização" se ainda não estiver expandido
- Clique com o botão direito no nó ".NET Framework" e selecione "Janela de Propriedades"
- 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.