我做了大量的研究,沒有找到任何合適的答案。這是場景。如何強制編譯的目標.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版本沒有你喜歡的枚舉值。你的應用程序如何正確解釋屬性值是一個非常困難的猜測。但如果它起作用,那麼它就可以工作 –