簡體   English   中英

針對Windows 8.x的.Net 4.0

[英].Net 4.0 targeting on windows 8.x

我對將.net 4.0應用程序定位為在Windows 8.x上運行感到有些困惑。 以我的理解,Windows 8.0帶有4.5,而Windows 8.1帶有4.5.1。 因此,我的問題是,如果我構建針對c#/。net 4.0(在Visual Studio項目設置中)的WinForms或WPF客戶端應用程序,並且當然僅使用.net 4.0功能(即,.net 4.5.x中沒有功能),那么此應用程序無需安裝.net 4.0框架即可在Windows 8.x上正常運行(也就是說,僅依賴於OS附帶的功能)? 基本上,我試圖避免強迫最終用戶在運行應用程序之前在其計算機上安裝.net 4.0框架。

查看各種Microsoft DLL(例如,System)的DLL屬性時,它們針對.net 4.0或.net 4.5.x-> v4.0.30319時,它們顯示的運行時版本相同。 所以我的理解是4.0和4.5.x的目標是相同的clr運行時版本。因此,我的.net 4.0應用程序應該可以正常運行???

從此處的ref( http://msdn.microsoft.com/zh-cn/library/bb822049%28v=vs.110%29.aspx ),它說.net 4.0甚至無法安裝在win8.x上。

在我的測試中,以.net 4.0為目標並在win8.1的全新安裝上運行似乎不錯(無需安裝其他任何東西),但需要獲取有關陷阱的建議。

謝謝。

請注意,.NET框架本質上是向后兼容的-.NET 4.5將執行.NET 4.0代碼就可以了。 即使在解決方案中,也可以看到這一點,因為.NET 4.5 / 4.5.1項目可以引用較舊的.NET項目而不會發生意外。 這包括.NET 4.0以及早期版本。

除了向后兼容之外,.NET 4.5確實可以在CLR 4.0上運行-4.5僅僅是庫和編譯器擴展。

可能的陷阱

  • 強調向后兼容性的原因是我們幾乎永遠看不到功能從.NET Framework中消失,而只是將其標記為[Obsolete] 檢查您使用的任何功能是否已過時是個好主意,盡管這種情況很少見,並且這些功能通常可以按預期繼續運行。
  • Windows 8不喜歡驅動器映射,如果您的應用程序接觸任何網絡驅動器,它將要求您使用UNC路徑。
  • Windows 8可能更具攻擊性,需要運行Admin特權才能運行,甚至包括在嘗試編譯輸出到C:\\Program Files\\...的程序時需要以admin身份明確啟動VS。

最后說明:在發布給用戶之前,始終在目標平台上測試您的應用程序。

根據這個問題

.NET Framework 4.5於2012年8月15日發布。此版本中添加了一組新功能或改進功能。 .NET Framework 4.5僅在Windows Vista或更高版本上受支持。 .NET Framework 4.5使用公共語言運行時4.0,以及一些其他運行時功能。

那么我要說的是,由於安裝了.NET 4.5,因此您還將始終安裝.NET 4.0。 我認為這不應該成為問題!

通過您發布的鏈接:

.NET Framework的每個新版本均保留以前版本的功能並添加新功能。

同樣從該鏈接:

.NET Framework 4.5是一個就地更新,它替代了您計算機上的.NET Framework 4,並且類似地,.NET Framework 4.5.1 4.5.2和4.6 Preview是.NET Framework 4.5的就地更新。 ,這意味着它們使用相同的運行時版本,但是程序集版本已更新並包括新的類型和成員。

因此,如果系統具有4.5,則它也將能夠運行針對4.0的應用程序。 無法安裝某些版本的事實僅意味着它們從一開始就已包含在內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM