2014-05-09 19 views
10

Tôi đã cố gắng thay đổi Khung mục tiêu trên ứng dụng của tôi gần đây từ .NET Framework 4.5 thành 4.5.2, nhưng nếu tôi gặp lỗi sau khi cố gắng tạo: " 'Biểu mẫu' không phải là thành viên của 'Windows' '(nghĩa là, System.Windows.Forms). Thay đổi thành 4.5.1 hoạt động bình thường. Tôi đang sử dụng Visual Studio 2013 Ultimate.'Biểu mẫu' không phải là thành viên của 'Windows'

+1

4.5.2? Đây có phải là bản beta hay RC không? – Tim

+0

Không, nó là một bản phát hành chính thức, cách đây 4 ngày. –

Trả lời

20

Tôi gặp lỗi này khi thay đổi thành 4.5.2.

Trong trường hợp của tôi lỗi có liên quan đến MessageBox ... Tôi đã thay thế: "Windows.Forms.DialogResult.Yes" (đã gây ra cùng thông báo lỗi) với "System.Windows.Forms.DialogResult.Yes" đã làm các trick.

+0

Nó không hoạt động trên 4.6.1 – Jim

7

Tôi cũng gặp vấn đề tương tự, với giá trị Windows.Forms.DialogResult đếm.

Dự án tự động nhập SystemSystem.Windows.Forms namespace và làm việc tốt lên đến 4.5.1.

Trong 4.5.2 Tôi phải xóa Windows.Forms. và chỉ để lại DialogResult.Ok (hoặc bất kỳ thứ gì khác) trong mã của tôi, có vẻ như đó là vấn đề với độ phân giải không gian tên.

+0

Nó không hoạt động trên 4.6.1 – Jim

0

Đảm bảo rằng bạn thêm System ở phía trước Windows.Form.

+1

Một số làm rõ các bước sẽ hữu ích ở đây. –

2

Tôi đã chạy ứng dụng này với ứng dụng vẫn được nhắm mục tiêu đến .NET 4.0, nơi ứng dụng không thành công trên máy chủ xây dựng (mới), nhưng chạy trên máy chủ cũ của tôi.

Tôi đã thu hẹp nó xuống gói nhắm mục tiêu .NET 4.0 chỉ được cài đặt trên các máy chủ xây dựng cũ. Gói nhắm mục tiêu được bao gồm trong Visual Studio hoặc Windows 7.1 SDK. Đó là vì một số lý do không được phân phối riêng biệt và với support ending for .NET 4, 4.5 and 4.5.1, tôi không nghi ngờ điều này có khả năng thay đổi. Bởi vì các máy chủ cũ của tôi đã được khoảng một vài năm, họ đã trải qua các bản nâng cấp tại chỗ và do đó đã có gói nhắm mục tiêu.

Khi bạn cài đặt Windows 7.1 SDK trên máy chủ 2012R2, nó phàn nàn một điều gì đó về ảnh hưởng của "Phiên bản tiền phát hành .NET 4 đã được cài đặt, vui lòng cài đặt phiên bản RTM". Theo như tôi có thể nói, nó đơn giản chỉ vì một phiên bản mới hơn) được cài đặt - Server 2012R2 đi kèm với 4.5.1. Tôi đã cố gỡ cài đặt tất cả các phiên bản mới hơn, nhưng không thể lấy SDK để cài đặt gói nhắm mục tiêu.

Vì vậy, để cài đặt:

Bây giờ bạn sẽ có một thư mục %programfiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ với những thứ 4.0.

(EXTUI = 1 bỏ qua giới hạn không thể là installed separately).

Điều này cho phép tôi biên dịch các dự án vẫn nhắm mục tiêu 4.0 (hoặc xây dựng lại các phiên bản/chi nhánh cũ đang nhắm mục tiêu vào thời điểm đó).

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