2013-01-08 26 views
10

Tôi có một giải pháp phòng thu trực quan 2008 và .NET Framework v3.5. Gần đây tôi đã chuyển đổi thành Visual Studio 2010 và .NET Framework v4.0.NET Framework di chuyển từ v3.5 sang v4.0

Để thay đổi thành .NET Framework v4.0 tôi đã thực hiện thông qua các thuộc tính dự án và tab xây dựng, bằng cách thay đổi đích để nhắm mục tiêu Framework v4.0 cho từng dự án. Tuy nhiên, nếu tôi mở tập tin cấu hình dự án csproj, tôi có thể thấy có một thẻ liên quan đến v3.5:

<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Drawing" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="WindowsBase"> 
    <RequiredTargetFramework>3.0</RequiredTargetFramework> 
    </Reference> 
</ItemGroup> 

Tôi muốn biết tại sao đối với một số tài liệu tham khảo bao gồm là đề cập đến v3.0, v3.5 các khung công tác nếu dự án nhắm đến .NET Framework v4.0. Điều này cũng xảy ra đối với các dự án khác mặc dù dự án đang nhắm đến NET framework v4.0.

System.Core được nhắm mục tiêu đến 3,5 WindowsBase được nhắm mục tiêu đến 3,0

+2

Đó là cách IDE biết để hiển thị biểu tượng cảnh báo khi bạn chọn phiên bản .NET cũ. Tính năng, không phải lỗi. –

Trả lời

2

Những tài liệu tham khảo bản thân đòi hỏi 3,5 (đối với System.Core) và 3.0 (đối với WindowsBase). Trên thực tế, điều này không chính xác 100% (xem nhận xét của Ramhound về câu trả lời này).

Cho đến nay, mọi khung công tác .NET ở trên 2.0 đều cơ bản là các tệp DLL trên trang web 2.0. Ví dụ, một vài năm và một công việc trước đây, tôi cần LINQ và Hashset <T> trong .NET 2.0, vì một nửa người dùng của tôi bị kẹt trên Win2K, không hỗ trợ bất cứ điều gì ở trên .NET 2.0. Tôi vết thương lên biên dịch lại System.Core từ Mono và đã có nó mục tiêu 2.0, và đã có thể sử dụng các tính năng mới hơn.

Tôi không nghĩ đó là bất cứ điều gì bạn cần phải lo lắng.

+0

Tôi nên chỉ ra rằng cả hai phần tử XML RequiredTargetFramework cũng trống. Điều này có nghĩa là không có tham chiếu nào được nhắm mục tiêu đến 3,5 hoặc 3,0. Nếu bạn muốn, bạn có thể sửa đổi tệp giải pháp bằng tay và xóa các dòng đó. –

+0

@Ramhound: Điểm tốt. Tôi đã không bao giờ nhìn vào các tập tin csproj nhiều, vì vậy tôi không biết điều đó. –

+0

Tôi đã dành nhiều ngày làm việc phải sửa đổi tệp giải pháp bằng tay vì nhiều lý do. Câu đầu tiên của bạn trong trường hợp này không chính xác 100%. Trong một trường hợp như thế này 'System.Core' sẽ là phiên bản đi kèm với .NET Framework 4.0 và' WindowsBase' dành cho các ứng dụng WPF cũng sẽ là .NET Framework 4.0. –

Các vấn đề liên quan