Visual Studio: Detectarea ansamblurilor care nu sunt necesare

În cazul proiectelor mai mari și/sau lungi, am tendința de a face referire la numeroase ansambluri și spații de nume, și de cele mai multe ori am terminat eliminarea unor funcții mai târziu sau mutarea lor într-un proiect diferit.

Mă întreb, există o modalitate de a verifica fiecare proiect (heck, fiecare fișier .cs) în întreaga mea soluție Visual Studio și pentru a obține o listă cu toate ansamblurile menționate și spații de nume care nu sunt de fapt utilizate și pot fi eliminate în siguranță? Știu că ReSharper o poate face pentru un singur fișier de cod, dar nu am văzut o opțiune de a verifica toate fișierele sau de a verifica dacă nu sunt necesare Asamblări.

Utilizarea Visual Studio 2005 și 2008 Professional dacă este important.

Editați: Vă mulțumim până acum. Problema cu ReSharper sau "Remove and Readd if constructs breaks" este că este destul de plictisitor pentru fiecare fișier și asamblare (Proiectul meu are aproximativ 120 .cs Fișiere în 7 Ansambluri și referă un total de 18 Ansambluri în afara soluției) așa că în mod ideal căut un lucru "cu un singur clic". Big Bonus puncte pentru unele mod automat care pot fi folosite în buildscripts pentru a genera un raport :)

0
Resharper a făcut recent o licență personală mai ieftină. Cred că este de 134 € pentru C# acum. Instrumentele gratuite ar fi frumos, bineînțeles (dacă MSBuild ar putea face acest lucru prin honkey-dorey!), Dar eu sunt în principal căutând ceva care funcționează mai întâi :)
adăugat autor Michael Stum, sursa
Ar fi frumos dacă întrebarea a fost în termeni de instrumente gratuite, nu doar de instrumente. Mi sa întâmplat să fiu resharper, deci soluția de mai jos este bună, dar încă ...
adăugat autor Oskar, sursa

10 răspunsuri

Da, nu cred că există unul. Eu doar șterge unele nu cred că sunt necesare atunci construi: /

BTW. care va continua să utilizeze erori. Puteți utiliza comenzile Power Visual Studio pentru a elimina și sorta usings, așa că mai întâi, apoi ștergeți ansamblurile aleatoare: D

0
adăugat

Orice profilator de cod decent va face asta pentru tine. Îmi place DevPartner personal.

0
adăugat

Nu va scapa de niciun fel de referinte in cod la ansamblurile dvs. de referinta (cred), dar puteti merge la proprietatile fiecaruia dintre proiectele dumneavoastra, ati ajuns la Referinte, si faceti clic pe "Reference Unused ...". Visual Studio îți oferă apoi opțiunea de a le elimina chiar acolo.

Nici o modalitate de a face acest lucru la nivelul soluției.

0
adăugat

(Postat de la aici ) Având în vedere că VisualStudio (sau este msbuild?) Detectează referințele neutilizate și nu le include în fișierul de ieșire, puteți scrie un script care analizează referințele din csproj și compară acest cu referințele Ansambluri detectate prin reflexie pe ieșirea proiectului.

Dacă ești motivat ...

0
adăugat

Am găsit această întrebare în timp ce căutam în Google și căutam o modalitate de a elimina declarațiile neutilizate "Utilizare" din codul meu.

Refactorul este minunat, dar nu este disponibil pentru mine. Cu toate acestea, după cum se pare, Visual Studio 2008 face acest lucru pe cont propriu.

Iată pașii:

  1. Încărcați codul în Visual Studio.
  2. Faceți clic dreapta oriunde pe pagina de cod.
  3. Faceți clic pe "Organizați utilizările" din meniu.
  4. Faceți clic pe "Eliminați utilizările nefolosite"

Terminat. Îmi dau seama că acest lucru nu răspunde la întrebarea inițială (face acest lucru în masă pentru un întreg proiect), dar îmi răspunde la întrebarea mea.

0
adăugat
acest lucru este, de asemenea, disponibil în Visual Studio 2010
adăugat autor Junior M, sursa

Resharper will do this for you and you can set it up in the Clean Code option that you can run solution wide ;o)

0
adăugat

Dacă aveți instalat ReSharper, apoi din Solution Explorer puteți să faceți clic dreapta pe o referință și să faceți clic pe Găsiți codul dependent . Dacă se întoarce cu un dialog de rezultate, atunci utilizați acea referință/ansamblu. Dacă primiți mesajul "Codul dependent de modul numele modulului nu a fost găsit." Apoi ar trebui să fiți bine să eliminați referința/ansamblul deoarece nu este folosit.

0
adăugat

După cum sa menționat și în răspunsurile anterioare, Resharper funcționează bine pentru acest lucru, precum și o varietate de alte cazuri, cum ar fi ca modalități de a face codul mai curat și de a genera anumite lucruri pentru tine. Cea mai bună modalitate de a descoperi cu adevărat toate avantajele Resharper este să descărcați procesul, să tipăriți un Keymap Cheatsheet și lipiți-o lângă dvs. unde vă dezvoltați.

Povestea lungă scurtă, rezolvă această problemă, dar are mult mai mult decât atât.

0
adăugat

Dacă aveți ReSharper atunci, selectați soluția, faceți clic dreapta și selectați codul de curățare. Apoi Resharper va trece prin fiecare fișier de cod din soluție.

În ceea ce privește eliminarea referințelor de proiect, atunci când compilatorul rulează, acesta nu va adăuga referința dacă niciun cod nu folosește dll-ul respectiv.

0
adăugat

Eliminarea referințelor neutilizate este o caracteristică deja acceptată de Visual Studio 2008. Din păcate, numai pentru proiectele VB .NET.

Am deschis o sugestie pentru Microsoft Connect pentru a obține această caracteristică și pentru proiectele C #:

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

Dacă vă place și această caracteristică, atunci puteți vota sugestia mea.

0
adăugat
Vă mulțumim pentru deschiderea sugestiei privind conectarea, dar nu suficient de mulți oameni au făcut efortul de a face acest lucru. De asemenea, mă întreb dacă nu există oricum această funcție ascunsă prin utilizarea unui macro pentru un proiect C #.
adăugat autor jpierson, sursa