it-swarm-vi.tech

Xóa các tham chiếu không sử dụng (! = "Sử dụng")

Làm thế nào tôi có thể tìm và xóa các tài liệu tham khảo không sử dụng trong các dự án của tôi?

Tôi biết bạn có thể dễ dàng xóa các câu lệnh sử dụng trong so với năm 2008, nhưng điều này không xóa tham chiếu thực tế trong các dự án của bạn. Dll được tham chiếu vẫn sẽ được sao chép trong gói bin/setup của bạn.

100
Boris Callens

* Lưu ý: xem http://www.jetbrains.net/devnet/message/5244658 để biết phiên bản khác của câu trả lời này.

Đọc qua các bài viết, có vẻ như có một số nhầm lẫn như câu hỏi ban đầu. Hãy để tôi đâm vào nó.

Bài đăng gốc thực sự đặt câu hỏi: "Làm cách nào để xác định và xóa tham chiếu khỏi một dự án Visual Studio sang các dự án/hội đồng khác không được sử dụng?" Người đăng muốn các hội đồng không còn xuất hiện như một phần của đầu ra bản dựng.

Trong trường hợp này, ReSharper có thể giúp bạn xác định họ, nhưng bạn phải xóa chính họ.

Để thực hiện việc này, hãy mở Trình duyệt Giải pháp giới thiệu, nhấp chuột phải vào từng Hội đồng được tham chiếu và chọn "Tìm mã phụ thuộc". Xem:

http://www.jetbrains.com/resharper/features/navlation_search.html#Find_ReferencedDep khu_Code

Bạn sẽ nhận được:

  1. Danh sách các phụ thuộc vào Tham chiếu đó trong cửa sổ trình duyệt hoặc

  2. Một hộp thoại cho bạn biết "Mã phụ thuộc vào mô-đun XXXXXXX không được tìm thấy.".

Nếu bạn nhận được kết quả thứ hai, bạn có thể nhấp chuột phải vào Tham chiếu, chọn Xóa và xóa nó khỏi dự án của bạn.

Mặc dù bạn phải "thủ công" này, tức là một tài liệu tham khảo tại một thời điểm, nó sẽ hoàn thành công việc. Nếu bất cứ ai đã tự động hóa điều này theo một cách nào đó, tôi muốn nghe cách nó được thực hiện.

Bạn có thể bỏ qua những cái trong .Net Framework vì chúng thường không được sao chép vào đầu ra bản dựng của bạn (thông thường - mặc dù không nhất thiết đúng với các ứng dụng Silverlight).

Một số bài đăng dường như đang trả lời câu hỏi: "Làm cách nào để xóa bằng cách sử dụng mệnh đề (C #) khỏi tệp mã nguồn không cần thiết để giải quyết bất kỳ tham chiếu nào trong tệp đó".

Trong trường hợp này, ReSharper giúp đỡ theo một số cách:

  1. Xác định không sử dụng mệnh đề cho bạn trong quá trình phát hiện lỗi bay. Chúng xuất hiện dưới dạng Cảnh báo kiểm tra mã - mã sẽ xuất hiện màu xám (mặc định) trong tệp và ReSharper sẽ cung cấp Gợi ý để xóa mã:

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. Cho phép bạn tự động xóa chúng như một phần của Quy trình dọn sạch mã:

    http://www.jetbrains.com/resharper/features/code_formatted.html#Optimizing_Namespace_Import_Directives

Cuối cùng, nhận ra rằng ReSharper thực hiện phân tích mã tĩnh trên giải pháp của bạn. Vì vậy, nếu bạn có một tham chiếu động đến hội - nói thông qua sự phản chiếu hoặc hội được tải động khi chạy và truy cập qua một giao diện - thì nó sẽ không nhận nó. Không có thay thế để hiểu cơ sở mã của bạn và các phụ thuộc dự án khi bạn làm việc với dự án của bạn. Tôi thấy các tính năng ReSharper rất hữu ích.

55
jlo

bạn có thể sử dụng tiện ích mở rộng ' Xóa các tham chiếu không sử dụng ' tôi đã viết:

http://visualstudiogallery.msdn.Microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

12
Spongman

Xóa các tham chiếu không sử dụng là một tính năng Visual Studio 2008 đã hỗ trợ. Thật không may, chỉ cho VB dự án .NET.

Tôi cũng đã mở một đề xuất trên Microsoft Connect để có được tính năng này cho các dự án C #:

http://connect.Microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

Nếu bạn thích tính năng này thì bạn có thể bỏ phiếu cho đề xuất của tôi.

7
jbe

Hãy thử cái này: Trợ lý tham khảo

Tóm lược

Trợ lý tham khảo giúp xóa các tham chiếu không sử dụng khỏi các dự án C #, F #, VB.NET hoặc VC++/CLI trong Visual Studio 2010.

5
Leniel Maccaferri

ReSharper 6.1 sẽ bao gồm các tính năng sau:

-Tạo tối đa các tài liệu tham khảo: phân tích các tài liệu tham khảo hội của bạn và tập quán của chúng trong mã, lấy danh sách các tài liệu tham khảo dư thừa và loại bỏ chúng.

-Remove Tài liệu tham khảo không sử dụng: tái cấu trúc nhanh để loại bỏ các tài liệu tham khảo hội dư thừa.

-Safe an toàn trên các tham chiếu hội: sẽ xóa các tham chiếu hội nếu tất cả chúng đều dư thừa, nếu không sẽ phân tán việc sử dụng và chỉ có thể xóa các tham chiếu hội dự phòng của danh sách đã chọn.

4
Kirill Skrygan

Resharper sẽ làm điều này cho bạn (và còn nhiều hơn thế nữa!)

4
Chris Canal

Tôi đã thực hiện điều này mà không cần mở rộng trong Kiến trúc tối thượng VS 2010-> Tạo biểu đồ phụ thuộc-> Bằng cách lắp ráp, nó hiển thị các cụm được sử dụng và xóa thủ công các tham chiếu không sử dụng.

3
mes

Tôi có câu trả lời miễn phí hoạt động trong mọi phiên bản Visual Studio và mọi phiên bản Framework. Nó không xóa các tham chiếu không sử dụng, nhưng nó xác định chúng.

Bạn có thể sử dụng Telerik JustDecompile trên dll dự án của bạn. Chỉ cần mở dll trong JustDecompile và đi vào References để xem những gì thực sự được sử dụng trong dll đã biên dịch.

enter image description here

2
toddmo

Tôi nghĩ rằng nó được sao chép trong bin \, bởi vì trong dự án đã loại bỏ tham chiếu có tham chiếu o dự án khác có cùng tham chiếu ...

0
hdmq

Nếu bạn biết tài liệu tham khảo nào không được sử dụng, bạn có thể xóa chúng bằng tay.
[.___.] Trong Solution Explorer, bấm chuột phải vào tham chiếu trong nút Tham khảo, rồi bấm Xóa.

0
fat

Cho rằng VisualStudio (hoặc là msbuild?) Phát hiện các tham chiếu không được sử dụng và không bao gồm chúng trong tệp đầu ra, bạn có thể viết một tập lệnh phân tích các tham chiếu ra khỏi csproj và so sánh với các Tập hợp được tham chiếu được phát hiện bởi phản xạ trên sản lượng dự án.

Nếu bạn có động lực ...

0
Benjol