我做了大量的研究,没有找到任何合适的答案。这是场景。如何强制编译的目标.NET Framework 4在.NET框架4.6.1下运行?
我有一个应用程序被编译为面向.NET Framework 4.在运行时我希望该应用程序在.NET Framework 4.6.1中实际执行。到目前为止我发现了两个选择。
- 重新编译应用程序下.NET框架4.6.1
- 添加的配置/启动/ supportedRuntime元件与版本的app.config = “4.0版” SKU =”。NETFramework,版本= v4.6.1 “
选项1不可取,因为它需要重新发布软件。
选项2不会做我期望的。它似乎检查是否安装了CLR 4.0(不是框架4.0),如果不提示下载相应的SKU进行安装。安装后,应用程序仍然在.NET框架4.0
执行作为测试,而这个问题是张贴的原因,我创建了一个小型控制台应用程序,它只是做到这一点
Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol);
如果编译针对.NET框架4,则输出是
SSL3,TLS
如果正在针对.NET编译Framewo RK 4.6.1则输出是
TLS,Tls11,Tls12
http://stackoverflow.com/a/28502562/17034 –
谢谢Hans。这确实解决了我的示例中的问题,并且是我们要使用的。我也对更大的问题的答案感兴趣。你有机会知道这是否可能,如果是的话,如何? –
Hmya,SecurityProtocolType的.NET 4.0版本没有你喜欢的枚举值。你的应用程序如何正确解释属性值是一个非常困难的猜测。但如果它起作用,那么它就可以工作 –