Come confrontare 2 versioni di un assembly .NET compilato per visualizzare le modifiche tra le 2 versioni? Ho una biblioteca non ben documentata e ho bisogno di sapere cosa è stato cambiato tra la vecchia versione e la nuova versione.Confronta 2 versioni di un assembly .NET?
risposta
Lo strumento NDepend offre molte funzionalità per gestire il codice .NET diff. Disclaimer: Sono uno degli sviluppatori dello strumento.
Il pannello Ricerca per modifica è dedicato alla ricerca del codice diff. Si noti che:
- È possibile collegare a qualsiasi strumento NDepend codice diff utilizzato dal menù Confronta versione più vecchia e la più recente del file sorgente
- Se non si dispone del codice sorgente, solo le assemblee prime, v'è la possibilità Confronti vecchi e nuovi versione smontato con riflettore
Avviso anche nello screenshot che viene generato un CQLinq code query per sfogliare il diff.
from m in Application.Methods
where m.CodeWasChanged()
select new { m, m.NbLinesOfCode }
Molti altri predefiniti query e le regole diff sono proposti di default, che vi permetterà di sfogliare il codice .NET diff in modo intelligente.
- Types that used to be 100% covered but not anymore
- API Breaking Changes: Methods
- Avoid making complex methods even more complex
- Avoid decreasing code coverage by tests of types
- From now, all types added or refactored should respect basic quality principles
- Avoid transforming an immutable type into a mutable one
- Heuristic to find types moved from one namespace or assembly to another
Utilizzare Red Gate's .NET reflector
e sarà possibile dare un'occhiata alle effettive modifiche al codice tra gli assembly.
Uso il riflettore, con il plug-in Diff.
Potresti anche trovare utile questo post Hanselman, in quanto esamina altri strumenti, tra cui Reflector Diff.
http://www.hanselman.com/blog/ManagingChangeWithNETAssemblyDiffTools.aspx
Oltre al riflettore, è possibile utilizzare NDepend per eseguire questa operazione. Si prega di notare che questo è un software commerciale, ma il sito offre una prova gratuita. Ecco un online tutorial su come si può usare NDepend per confrontare due assiemi.
Avete il codice o solo i gruppi? Nel caso in cui hai le versioni compilate, un modo è quello di scavare in loro utilizzando il browser degli oggetti in Visual Studio. L'altro approccio potrebbe essere l'uso del disassemblatore come Red Gates Reflector per vedere il codice sorgente.
Hai il codice sorgente? Questo controller della versione del codice sorgente?È sempre più facile lavorare con il codice sorgente anziché con gli assembly compilati. –
No Non ho il codice sorgente, sembra che NDepend faccia il trucco! – user433731