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

questionAnswers(2)

yourAnswerToTheQuestion