Como forçar um aplicativo compilado para direcionar o .NET Framework 4 para execução no .NET Framework 4.6.1?
Eu fiz uma pesquisa considerável e não encontrei nenhuma resposta adequada. Aqui está o cenário.
Eu tenho um aplicativo que foi compilado para atingir o .NET Framework 4. Em tempo de execução, eu quero que esse aplicativo seja realmente executado no .NET Framework 4.6.1. Encontrei duas opções até agora.
Recompile o aplicativo no .NET Framework 4.6.1Adicione o elemento configuration / startup / supportedRuntime ao app.config com a versão = "v4.0" sku = ". NETFramework, Versão = v4.6.1"A opção 1 não é desejável, pois exigiria um relançamento do software.
A opção 2 não faz o que eu esperaria. Parece verificar se o CLR 4.0 (não a estrutura 4.0) está instalado e se não solicitar o download do SKU apropriado para instalá-lo. Depois de instalado, o aplicativo ainda é executado no .NET Framework 4.0
Como teste, e o motivo pelo qual esta pergunta foi publicada, criei um pequeno aplicativo de console que simplesmente faz isso
Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol);
Se isso for compilado no .NET Framework 4, a saída será
Ssl3, Tls
Se isso for compilado no .NET Framework 4.6.1, a saída será
Tls, Tls11, Tls12