Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Cách Bật .NET Framework 3.5 Trên Windows 10/11 Để Chạy Ứng Dụng Legacy

Vì Sao Cần Bật .NET Framework 3.5 Thủ Công?

.NET Framework 3.5 (phát hành 2007, bao gồm cả .NET 2.03.0) là runtime bắt buộc để chạy rất nhiều ứng dụng desktop WinForms/WPF cũ, một số công cụ nội bộ doanh nghiệp, và cả một số game/tiện ích build từ giai đoạn 2008-2015. Vấn đề là kể từ Windows 8 trở đi, Microsoft không cài sẵn .NET Framework 3.5 — hệ điều hành chỉ có .NET Framework 4.x (hoặc .NET hiện đại) cài mặc định.

Khi mở một ứng dụng cũ yêu cầu .NET Framework 3.5, Windows sẽ hiện thông báo: "Ứng dụng này cần một tính năng Windows" kèm nút "Cài đặt tính năng này". Nếu bạn không có internet, hoặc mạng công ty chặn Windows Update, quá trình cài tự động này sẽ thất bại — đây là lý do bài viết này tồn tại: hướng dẫn 3 cách bật .NET Framework 3.5, kể cả khi không có internet.

Cách 1: Bật Qua "Turn Windows Features On or Off" (GUI)

Đây là cách đơn giản nhất, phù hợp khi máy có kết nối internet ổn định (Windows sẽ tự tải gói cần thiết qua Windows Update):

  1. Nhấn Windows + R, gõ optionalfeatures, nhấn Enter — hoặc tìm "Turn Windows features on or off" trong Start Menu.
  2. Trong danh sách, tìm mục ".NET Framework 3.5 (includes .NET 2.0 and 3.0)".
  3. Tick chọn cả mục cha (.NET Framework 3.5) — theo mặc định 2 mục con Windows Communication Foundation HTTP ActivationWindows Communication Foundation Non-HTTP Activation sẽ đi kèm, không bắt buộc nếu ứng dụng không dùng WCF.
  4. Nhấn OK và chờ Windows tải + cài đặt qua Windows Update.
  5. Khởi động lại máy nếu được yêu cầu.

Nếu bước này báo lỗi (thường do máy không có internet, proxy công ty chặn, hoặc Group Policy giới hạn Windows Update), chuyển sang Cách 2 hoặc Cách 3.

Cách 2: Bật Qua DISM (Command Line, Cần Internet)

DISM (Deployment Image Servicing and Management) là công cụ dòng lệnh quản lý Windows image, cho phép bật tính năng nhanh hơn GUI:

# Mở PowerShell hoặc CMD với quyền Administrator
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

Lệnh này tương đương với việc tick chọn .NET Framework 3.5 trong GUI, nhưng chạy nhanh và dễ đưa vào script triển khai hàng loạt. Cờ /All đảm bảo cài luôn các tính năng phụ thuộc.

Cách 3: Cài Offline Từ Windows ISO (Không Cần Internet)

Đây là cách hữu ích nhất cho môi trường doanh nghiệp bị chặn Windows Update, hoặc máy ảo (VM) không có kết nối mạng ra ngoài:

  1. Chuẩn bị file Windows 10/11 ISO (cùng phiên bản với hệ điều hành đang chạy) — có thể tải từ trang chính thức của Microsoft hoặc dùng đĩa cài đặt gốc.
  2. Mount file ISO (double-click trong Windows 10/11 để gắn thành ổ đĩa ảo, ví dụ ổ D:).
  3. Chạy lệnh sau với quyền Administrator, thay D: bằng ổ đĩa chứa ISO đã mount:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:D:\sources\sxs /LimitAccess

Giải thích:

  • /Source:D:\sources\sxs: chỉ định nguồn cài đặt là thư mục sxs bên trong ISO thay vì tải qua internet.
  • /LimitAccess: ngăn DISM cố gắng kết nối Windows Update, chỉ dùng nguồn local đã chỉ định — quan trọng khi máy bị chặn mạng, nếu không có cờ này DISM vẫn thử gọi Windows Update trước và có thể bị treo lâu.

Sau khi lệnh chạy xong (thường vài giây đến vài phút), kiểm tra lại bằng Cách 1 — mục .NET Framework 3.5 sẽ hiện đã được tick sẵn.

Kiểm Tra .NET Framework 3.5 Đã Cài Thành Công

Có 2 cách xác nhận nhanh:

  1. Qua Registry: mở regedit, kiểm tra khóa HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5, nếu tồn tại giá trị Install = 1 nghĩa là đã cài thành công.
  2. Qua PowerShell:
Get-WindowsOptionalFeature -Online -FeatureName NetFx3

Kết quả trả về State: Enabled nghĩa là tính năng đã bật.

Xử Lý Lỗi Thường Gặp

Lỗi 0x800F0906 / 0x800F081F — Không thể tải file nguồn

Nguyên nhân: Windows không thể tải gói .NET Framework 3.5 qua Windows Update (do mất kết nối, bị chặn proxy, hoặc Group Policy cấm).

Giải pháp: Dùng Cách 3 (cài offline từ ISO) với đầy đủ cờ /Source/LimitAccess như hướng dẫn ở trên.

Lỗi "The referenced assembly could not be found" khi mount ISO sai phiên bản

Nguyên nhân: File ISO không cùng phiên bản/kiến trúc (build number) với Windows đang chạy.

Giải pháp: Tải đúng ISO tương ứng phiên bản Windows hiện tại (kiểm tra qua winver), hoặc dùng ISO cùng dòng (Windows 10 Pro/Home dùng chung 1 ISO đa phiên bản).

Group Policy chặn cài đặt tính năng Windows

Nguyên nhân: Máy thuộc domain công ty, admin đã cấu hình Group Policy chặn cài Windows Optional Features từ nguồn ngoài Specify settings for optional component installation and component repair.

Giải pháp: Liên hệ IT admin để họ trỏ policy này tới một network share nội bộ chứa gói cài đặt hợp lệ, hoặc xin quyền cài đặt tạm thời.

Khi Nào Cần Đến .NET Framework 3.5?

  • Chạy các ứng dụng WinForms/WPF desktop được build từ khoảng 2008-2015, khai báo Target Frameworkv2.0, v3.0 hoặc v3.5 trong file .csproj.
  • Một số công cụ nội bộ doanh nghiệp (ERP, phần mềm kế toán, quản lý kho) vẫn chạy trên nền tảng này do chưa được nâng cấp/migrate.
  • Một số installer hoặc tiện ích hệ thống cũ (ví dụ driver, tool cấu hình phần cứng) phụ thuộc .NET Framework 2.0/3.5 runtime.
  • Khi build lại (rebuild) source code legacy trên máy dev mới — Visual Studio sẽ báo lỗi thiếu targeting pack nếu máy chưa bật tính năng này.

Kết Luận

Bật .NET Framework 3.5 trên Windows 10/11 không khó, nhưng dễ bị kẹt nếu máy không có internet hoặc bị giới hạn bởi chính sách công ty. Ưu tiên Cách 1 (GUI) nếu có mạng ổn định; nếu thất bại, chuyển ngay sang Cách 3 (cài offline từ ISO với /Source/LimitAccess) — đây là cách đáng tin cậy nhất cho môi trường doanh nghiệp hoặc máy ảo dev không có kết nối ra ngoài. Sau khi bật thành công, bạn có thể tiếp tục mở và build các dự án WinForms/WPF legacy trong Visual Studio mà không gặp lỗi thiếu targeting pack.

Tài Liệu Tham Khảo