Điều này hiển thị khi bạn nhấn F1 trong hộp thoại Khung và Tham chiếu:
Theo mặc định cho các dự án mới, khung được nhắm mục tiêu được đặt thành .NET Framework 4. IDE không hỗ trợ sửa đổi khung được nhắm mục tiêu, nhưng bạn có thể thay đổi nó theo cách thủ công. Trong tệp dự án (.vcxproj), khung được nhắm mục tiêu mặc định được biểu thị bằng phần tử thuộc tính v4.0. Để thay đổi khung được nhắm mục tiêu, hãy dỡ dự án, sử dụng trình soạn thảo văn bản để mở tệp dự án và sau đó thay đổi giá trị của phần tử thuộc tính từ v4.0 sang phiên bản khác được cài đặt trên máy chủ của bạn. Ví dụ: nếu bạn chỉ định v3.5, đại diện cho .NET Framework v3.5, Visual Studio 2008 SP1 phải được cài đặt . Lưu và đóng tệp, tải lại dự án và xác minh rằng khung mục tiêu được hiển thị trong trang thuộc tính. *
Điều đó không chính xác khủng khiếp đối với các dự án được chuyển đổi, bạn sẽ phải tự thêm <TargetFrameworkVersion>
phần tử. Đặt nó trong Nhóm tài sản có nhãn "Globals":
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
Câu chuyện sẽ khác khi bạn sử dụng VS2012 trở lên, phiên bản đầu tiên của VS có được cài đặt Bộ công cụ nền tảng trong trang Thuộc tính chung. Sau đó, bạn phải chọn "v90" để có bản dựng phù hợp nhắm mục tiêu 3.5. Tuy nhiên, thật vụng về, bạn phải cài đặt tất cả các phiên bản trung gian của VS trên máy để có sẵn lựa chọn đó.
Tại sao bạn cần cài đặt VS2008 yêu cầu một lời giải thích. Vấn đề cốt lõi là thư viện thời gian chạy C (msvcrt100.dll trở lên) chứa mã .NET để hỗ trợ thực thi mã được quản lý. Chi tiết quan trọng là trình khởi tạo mô-đun đảm bảo CRT được khởi tạo chính xác trong chương trình sử dụng mã C ++ / CLI. Mã đó luôn nhắm mục tiêu .NET 4 và vì nó được đưa vào msvcrt100.dll (trở lên) nên bạn luôn có một sự phụ thuộc mạnh mẽ vào thời gian chạy v4.0.30319. Bạn chỉ có thể có một phụ thuộc thuần v2.0.50727 khi bạn sử dụng thời gian chạy C cũ, msvcrt90.dll. Bạn chỉ có thể chắc chắn rằng bạn có một phụ thuộc msvcrt90.dll khi bạn sử dụng các tệp #include của trình biên dịch của VS2008.
Thực tế khó khăn là rất cần thiết để sớm chuyển sang .NET 4, bạn sẽ phải vật lộn với các vấn đề xây dựng như thế này nếu bạn không. Có rất ít trở ngại thực tế cho điều đó, .NET 4 được cung cấp miễn phí rộng rãi cho tất cả các mục tiêu bạn tưởng tượng. Vượt qua FUD có liên quan đến việc chuyển sang phiên bản thời gian chạy cao hơn thường chỉ là vấn đề thực sự. Không có lý do cho sự sợ hãi và nghi ngờ, nó ổn định.