Bagaimana saya dapat menemukan dan menghapus referensi yang tidak digunakan dalam proyek saya?
Saya tahu Anda dapat dengan mudah menghapus pernyataan penggunaan dalam vs 2008, tetapi ini tidak menghapus referensi aktual dalam proyek Anda. Dll yang direferensikan akan tetap disalin di paket bin / setup Anda.
.net
visual-studio
reference
Boris Callens
sumber
sumber
Jawaban:
* Catatan: lihat http://www.jetbrains.net/devnet/message/5244658 untuk versi lain dari jawaban ini.
Membaca postingan, sepertinya ada kebingungan dengan pertanyaan aslinya. Biarkan saya mencobanya.
Posting asli benar-benar mengajukan pertanyaan: "Bagaimana cara mengidentifikasi dan menghapus referensi dari satu proyek Visual Studio ke proyek / rakitan lain yang tidak digunakan?" Poster ingin agar rakitan tidak lagi muncul sebagai bagian dari keluaran build.
Dalam hal ini, ReSharper dapat membantu Anda mengidentifikasinya , tetapi Anda harus menghapusnya sendiri.
Untuk melakukan ini, buka Referensi di Browser Solusi, klik kanan mouse pada setiap rakitan yang direferensikan, dan pilih "Temukan Kode yang Tergantung". Lihat:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
Anda juga akan mendapatkan:
Daftar dependensi pada Referensi tersebut di jendela browser, atau
Dialog yang memberi tahu Anda "Kode bergantung pada modul XXXXXXX tidak ditemukan.".
Jika Anda mendapatkan hasil kedua, Anda dapat mengklik kanan mouse pada Referensi, pilih Hapus, dan hapus dari proyek Anda.
Meskipun Anda harus melakukannya "secara manual", yaitu satu referensi pada satu waktu, ini akan menyelesaikan pekerjaan. Jika seseorang telah mengotomatiskan ini dalam beberapa cara, saya tertarik untuk mendengar bagaimana hal itu dilakukan.
Anda dapat mengabaikan yang ada di .Net Framework karena biasanya tidak disalin ke output build Anda (biasanya - meskipun tidak selalu benar untuk aplikasi Silverlight).
Beberapa posting tampaknya menjawab pertanyaan: "Bagaimana cara menghapus menggunakan klausa (C #) dari file kode sumber yang tidak diperlukan untuk menyelesaikan referensi apa pun di dalam file itu".
Dalam kasus ini, ReSharper memang membantu dalam beberapa cara:
Mengidentifikasi klausa penggunaan yang tidak digunakan untuk Anda selama deteksi kesalahan dengan cepat. Mereka muncul sebagai Peringatan Pemeriksaan Kode - kode akan tampak abu-abu (menjadi default) di file dan ReSharper akan memberikan Petunjuk untuk menghapusnya:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
Memungkinkan Anda menghapusnya secara otomatis sebagai bagian dari Proses Pembersihan Kode:
http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives
Terakhir, sadari bahwa ReSharper melakukan analisis kode statis pada solusi Anda. Jadi, jika Anda memiliki referensi dinamis ke assembly - katakanlah melalui refleksi atau assembly yang dimuat secara dinamis saat runtime dan diakses melalui antarmuka - itu tidak akan mengambilnya. Tidak ada pengganti untuk memahami basis kode Anda dan ketergantungan proyek saat Anda mengerjakan proyek Anda. Saya menemukan fitur ReSharper sangat berguna.
sumber
Anda dapat menggunakan ekstensi ' Hapus Referensi yang Tidak Digunakan ' yang saya tulis:
http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097
sumber
Menghapus referensi yang tidak digunakan adalah fitur yang sudah didukung oleh Visual Studio 2008. Sayangnya, hanya untuk proyek VB .NET.
Saya telah membuka saran di Microsoft Connect untuk mendapatkan fitur ini juga untuk proyek C #:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326
Jika Anda menyukai fitur ini juga, maka Anda dapat memilih saran saya.
sumber
Coba yang ini: Asisten Referensi
sumber
ReSharper 6.1 akan menyertakan fitur-fitur ini:
Optimalkan referensi : analisis referensi assembly Anda dan penggunaannya dalam kode, dapatkan daftar referensi yang berlebihan, dan hapus.
Hapus Referensi yang Tidak Digunakan : refactoring cepat untuk menghapus referensi perakitan yang berlebihan.
Hapus aman pada referensi assembly : akan menghapus referensi assembly jika semuanya redundan, jika tidak, menghilangkan penggunaan dan hanya dapat menghapus referensi assembly yang berlebihan dari daftar yang dipilih.
sumber
ReSharper akan melakukan ini untuk Anda (dan banyak lagi!)
sumber
Saya melakukan ini tanpa ekstensi di VS 2010 Ultimate Architecture-> Generate Dependency Graph-> By Assembly, ini menunjukkan rakitan yang digunakan, dan secara manual menghapus referensi yang tidak digunakan.
sumber
Saya memiliki jawaban gratis yang berfungsi di semua versi Visual Studio dan versi Framework apa pun. Itu tidak menghapus referensi yang tidak digunakan, tetapi mengidentifikasi mereka.
Anda dapat menggunakan Telerik JustDecompile pada dll proyek Anda. Buka saja dll di JustDecompile dan masuk
References
ke bawah untuk melihat apa yang sebenarnya digunakan dalam dll yang telah dikompilasi.sumber
Mengingat bahwa VisualStudio (atau apakah itu msbuild?) Mendeteksi referensi yang tidak digunakan dan tidak menyertakannya dalam file output, Anda dapat menulis skrip yang mengurai referensi keluar dari csproj, dan membandingkannya dengan Assemblies yang direferensikan yang dideteksi oleh refleksi pada keluaran proyek.
Jika Anda termotivasi ...
sumber
Saya pikir itu disalin di bin \, karena dalam proyek yang menghapus referensi memiliki referensi o proyek lain yang memiliki referensi yang sama ...
sumber
Jika Anda mengetahui referensi mana yang tidak digunakan, Anda dapat menghapusnya secara manual.
Di penjelajah solusi, klik kanan referensi di node referensi , dan kemudian klik Hapus.
sumber