2009-05-13 41 views
14

Tôi có mã VB.NET trong Visual Studio 2008 bằng phương pháp lỗi thời và muốn chặn cảnh báo. Thật không may, theo khuyến nghị không phải là một giải pháp tốt, bởi vì nó đòi hỏi phải sử dụng một lớp khác, hoạt động khác nhau, theo những cách quan trọng.Ngăn chặn cảnh báo lỗi thời trong VB.NET

Tôi đang cố gắng ngăn chặn cảnh báo bằng System.Diagnostics.CodeAnalysis.SuppressMessage, nhưng tôi không biết viết gì làm tham số cho thuộc tính và không thể tìm thấy bất kỳ tham chiếu có liên quan nào.

Tôi cũng nên nói rằng, nhấp chuột phải vào lỗi trong danh sách lỗi Tôi không có tùy chọn 'Loại bỏ thông báo'.

+3

điều cũ thường trở nên lỗi thời vì một lý do tuy nhiên, và do đó bạn chắc chắn cần phải có một "TODO" trong mã để nhắc nhở bạn để cập nhật các phương pháp để các phương pháp mới ngay sau khi bạn có một số phát triển miễn phí chu kỳ. – DevinB

+2

Thật không may, không có cách nào để loại bỏ mã lỗi thời mà không vi phạm khả năng tương thích ngược. –

Trả lời

18

Nếu bạn đang sử dụng Visual Studio, bạn có thể thực hiện các thao tác sau.

  1. Nhấp chuột phải vào dự án và chọn "dỡ bỏ"
  2. Nhấp chuột phải vào dự án và chọn "Edit SomeProjectName.vbproj"
  3. Bạn sẽ thấy hai thẻ phần tử XML với cái tên "NoWarn". Thêm số 40000 vào danh sách các số đã có mặt (đảm bảo thực hiện việc này cho mọi thẻ NoWarn trong tệp)
  4. Lưu tệp
  5. Bấm chuột phải vào dự án và chọn tải lại (bạn sẽ phải đóng .vbproj file)

Điều này sẽ loại bỏ được cảnh báo. Số 40000 là số lỗi VB.Net cho cảnh báo obselete. Bạn có thể ngăn chặn bất kỳ cảnh báo nào trong thời trang này.

Lưu ý: Nếu thẻ NoWarn không có mặt, thêm nó vào các yếu tố PropertyGroup chính với các giá trị sau

<NoWarn>40000</NoWarn> 
+3

Lưu ý rằng điều này sẽ loại bỏ các cảnh báo lỗi thời _all_ dự án, không chỉ một trường hợp này ... – bdukes

+0

Cũng lưu ý rằng bạn phải xóa mọi thẻ NoWarn trống khỏi nhóm chính để làm việc này. –

4

Trong VS.NET, bạn có thể nhấp chuột phải và chặn cảnh báo phân tích mã. Điều này sẽ thêm thuộc tính cho bạn.

Tuy nhiên, cảnh báo "không sử dụng API quá cũ" không đến từ phân tích mã và do đó, tính năng SurpressMessage sẽ không hoạt động. Đây là một cảnh báo trình biên dịch.

Đối với VS.NET bạn cần phải tắt cảnh báo này với ...

/nowarn:0618 

... tại dòng lệnh (hoặc chỉ cần thêm "0618" vào trường Cảnh báo Suppress trên csproj tính chất). Bạn nên làm tương tự với bất kỳ số cảnh báo VB nào.

+0

Tôi không có tùy chọn đó vì một số lý do. Suy nghĩ về việc thêm thông tin đó quá muộn: ( –

+0

Đã cập nhật câu trả lời của tôi - đây không phải là cảnh báo CA (phải không?) –

+0

@Martin, đúng, đó là cảnh báo trình biên dịch – JaredPar

0

tôi đã có thể giải quyết này với câu trả lời JaredPar trong dự án VB của tôi, cảm ơn!

tôi đã có cảnh báo tương tự cho dự án thử nghiệm C# của tôi mà tôi đã loại bỏ bằng cách thêm trong phần cảnh báo đàn áp của Build Tab trong Project Properties.

Hãy nhớ mã lỗi cho VB và C# khác nhau.


Nếu muốn chỉnh sửa những cảnh báo này, bạn cần cài đặt và sử dụng ODP.NET cho Microsoft OracleClient Developers

Microsoft không dùng nữa System.Data.OracleClient, còn được gọi là Microsoft OracleClient. Các nhà phát triển nhà cung cấp Microsoft OracleClient có thể sử dụng cơ hội này để đánh giá lại nhà cung cấp dữ liệu nào sẽ sử dụng cho các dự án hiện tại và sắp tới. Oracle khuyến nghị bắt đầu xây dựng các ứng dụng Oracle .NET mới với Nhà cung cấp dữ liệu Oracle cho .NET (ODP.NET) và di chuyển các ứng dụng hiện có sang ODP.NET.

http://www.oracle.com/technetwork/topics/dotnet/index-085703.html

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