這是歷史版本頁面 — 看 .NET Framework (4) 最新版本

裝軟體跳出缺.NET Framework 4,它到底在幹嘛

.NET Framework (4) 軟體圖示 .NET Framework (4) 4.7.1 資料更新 2017-10-18 閱讀約 6 分鐘

你下載了一個想用的軟體,雙擊安裝檔,結果畫面跳出一串英文,說你的電腦缺少 .NET Framework 4,問你要不要下載安裝。你當下只想快點把軟體裝好,根本不想研究這是什麼東西,但偏偏不裝它,你要的軟體就是開不起來。這種「被系統攔住、卡在安裝第一步」的感覺,很多人都在裝遊戲、繪圖軟體或公司內部工具時遇過。

有些人會直接略過提示,結果軟體打不開;有些人上網亂抓安裝檔,裝了一堆來路不明的東西。其實這類工具扮演的角色很單純:它是一個執行環境,讓用特定程式語言寫出來的軟體能在 Windows 上跑。你不需要懂技術細節,只要知道「當軟體要求它,你就裝它」就夠了。

01裝遊戲或程式一直跳出要裝 .NET Framework 4,不裝會怎樣

不裝的話,那個軟體通常無法啟動,或啟動後立刻閃退。它提供執行環境和共用程式庫,很多 Windows 軟體在開發時就依賴它,少了它,軟體找不到需要的元件就會直接放棄執行。如果你遇到的是安裝檔主動跳出提示,照著安裝通常就能解決;如果裝完還是不能跑,問題可能出在別的地方。

02這套軟體裝了之後到底能幹嘛,我平常只上網看影片需要嗎

它本身沒有操作介面,不是一個你會打開來用的軟體。它是在背景提供執行環境,讓其他軟體能正常運作。一般使用者不會直接感受到它的存在,只有當你安裝的軟體或遊戲需要它時,系統才會跳出安裝提示。如果你沒遇過任何軟體要求它,就不需要主動安裝。

03它跟 .NET Core 差在哪,我該裝哪個

資料裡提到,.NET Framework 主要針對 Windows 平台,.NET Core 和 .NET 5+ 是後繼者,支援跨平台、架構更模組化。如果你只是要跑現有的 Windows 軟體,裝 .NET Framework 就夠了;如果你是開發者、要做跨平台應用,才需要考慮 .NET Core 或 .NET 5+。兩者用途不同,不是取代關係。

04裝了之後電腦會變慢嗎,會不會拖累效能

資料提到這版有效能最佳化和垃圾回收改進,理論上能讓依賴它的軟體跑得更順。但對一般使用者來說,它平常在背景待命,不會持續占用資源,實際影響很難感覺出來。如果你的電腦硬體規格較舊,裝了之後沒有明顯變慢,就不用擔心;如果真的覺得卡,問題通常出在別的地方。

05它支援哪些 Windows 版本,Win 7 或更舊的能裝嗎

資料顯示它支援 Windows 8、Windows 10、Windows 11。更舊的 Windows 版本沒有被列在支援清單裡,如果你還在用 Windows 7 或更早的系統,需要去微軟官網確認有沒有對應的版本可裝。另外,系統版本太舊的話,就算裝了,也可能因為缺少其他元件而無法正常運作。

06我是寫程式的,用這套開發有什麼要注意的

資料說它支援 C#、VB.NET、F# 等語言,提供豐富的類別庫,適合開發 Windows 桌面、Web 和行動應用。但要注意,微軟的重心已經轉到 .NET Core 和 .NET 5+,新專案建議先評估要不要直接用新平台。如果你要維護舊系統或開發 Windows 限定功能,用它還是可行的選擇。

07一般使用者遇到跳出提示,直接按安裝就好嗎

資料說安裝過程很直接,通常會隨 Windows Update 一起提供,也可以從微軟官網下載安裝程式。遇到提示時,照著指示安裝就好,裝完通常就能繼續安裝原本的軟體。要注意的是,下載來源要認明微軟官方管道,不要從不明網站抓安裝檔,以免裝到來路不明的東西。

08新專案還用這套開發適合嗎,會不會走回頭路

資料的結論寫得很清楚:微軟重心已經轉到 .NET Core 和 .NET 5+,.NET Framework 對新專案來說已經不是優先選擇。如果你要開發全新的應用,建議直接學 .NET Core 或 .NET 5+,除非你的專案有特殊需求,例如必須使用 Windows 限定功能,或要維護既有系統,才需要繼續用它。

09我要做跨平台 App,這套能應付嗎

資料明確提到它跨平台支援有限,主要針對 Windows 平台。如果你要開發能在 Windows、macOS、Linux 或手機上跑的應用,它不適合。這種情況應該考慮 .NET Core 或 .NET 5+,或改用 Java、Python、Node.js 等其他替代方案。先確認你的目標平台,再決定要用哪套工具。

10電腦裡已經有 .NET Framework 3.5,還要裝 4 嗎

資料沒有直接說明不同版本能否共存,但版本紀錄顯示它收錄了多個版本,代表不同版本可能同時存在於系統中。一般來說,不同版本的 .NET Framework 可以並存,不會互相覆蓋。建議先確認你要跑的軟體需要哪個版本,再決定要不要裝;如果軟體明確要求 4,就裝 4。

11這套軟體多久沒更新了,放著不管會有安全風險嗎

資料顯示它近兩年沒有更新紀錄,微軟的開發重心已經轉到 .NET Core 和 .NET 5+。雖然它本身算穩定,但長期沒有新版本,代表如果有安全漏洞,可能不會獲得修補。如果你只是為了跑舊軟體而裝它,風險相對低;如果在意安全,可以留意微軟官方的公告和建議。

下載與官方連結

前往官方網站 下載 .NET Framework (4)

NDP471-KB4033342-x86-x64-AllOS-ENU.exe · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

CORE:
Support for .NET Standard 2.0:
- .NET Standard defines a set of APIs that must be available on each .NET implementation that supports that version of the standard. The .NET Framework 4.7.1 fully supports .NET Standard 2.0 and adds about 200 APIs that are defined in .NET Standard 2.0 and are missing from the .NET Framework 4.6.1, 4.6.2, and 4.7. (Note that these versions of the .NET Framework support .NET Standard 2.0 only if additional .NET Standard support files are also deployed on the target system.)

Support for configuration builders:
- Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Without configuration builders, .config files are static, and their settings are defined some time before an application is launched
- To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. You also define your builders in your .config file

Run-time feature detection:
- The System.Runtime.CompilerServices.RuntimeFeature class provides a mechanism for determine whether a predefined feature is supported on a given .NET implementation at compile time or run time. At compile time, a compiler can check whether a specified field exists to determine whether the feature is supported; if so, it can emit code that takes advantage of that feature. At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. For more information, see Add helper method to describe features supported by the runtime

Value tuple types are serializable:
- Starting with the .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier

Support for read-only references:
- The .NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. This attribute is used by language compilers to mark members that have read-only ref return types or parameters. For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. For information on ref return values, see Ref return values and ref locals (C# Guide) and Ref return values (Visual Basic)

COMMON LANGUAGE RUNTIME (CLR):
Garbage collection performance improvements:
- Changes to garbage collection (GC) in the .NET Framework 4.7.1 improve overall performance, especially for Large Object Heap (LOH) allocations. In the .NET Framework 4.7.1, separate locks are used for Small Object Heap (SOH) and LOH allocations, which allows LOH allocations to occur when Background GC (BGC) is sweeping the SOH. As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance

Support for portable PDBs:
- The .NET Framework starting with version 4.7.1 supports portable PDBs. While standard PDB files are Windows-only, portable PDB files can be created and read on all platforms. In most cases, the file format is transparent to an application running on a particular .NET implementation. An exception is an application that dynamically emits an assembly at run time; in this case, the ability to emit a portable PDB can offer a performance improvement and reduce the application's memory footprint. You can determine at run time whether portable PDBs are supported on the current .NET implementation by passing the string "PortablePdb" to the RuntimeFeature.IsSupported(String) method before emitting the assembly

NETWORKING:
SHA-2 support for Message.HashAlgorithm:
- In the .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. Starting with the .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ

ASP.NET:
Execution steps in ASP.NET applications:
- ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET executes each event handler as an execution step. In versions of ASP.NET up to the .NET Framework 4.7, ASP.NET can't flow the execution context due to switching between native and managed threads. Instead, ASP.NET selectively flows only the HttpContext. Starting with the .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application

ASP.NET HttpCookie parsing:
- The .NET Framework 4.7.1 includes a new method, HttpCookie.TryParse, that provides a standardized way to create an HttpCookie object from a string and accurately assign cookie values such as expiration date and path

SHA-2 hash options for ASP.NET forms authentication credentials:
- In the .NET Framework 4.7 and earlier versions, ASP.NET allowed developers to store user credentials with hashed passwords in configuration files using either MD5 or SHA1. Starting with the .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file