Assembly Binding Log Viewer (spettacolo).

Ametto la mia totale ignoranza a riguardo, ma purtroppo ho scoperto solo ieri l’esistenza di questo tool (fighissimo) che mi ha permesso di risolvere un problema in pochi istanti; ma partiamo con ordine.

La settimana scorsa mi è arrivato il portatile aziendale ed ovviamente c’è stata tutta la trafila di installazione di quei tools fondamentali per il lavoro, quindi Visual Studio, Reflector, Sql, etc.
Forse perchè lo uso un po’ meno, però ho tralasciato l’installazione di Visual Studio 2008 (in azienda siamo su 2010 e per i miei sfoghi tecnologici non uso sicuramente la 2008).

Una volta reso abile ed arruolato il pc per lavorare, ho deciso di mettermi a scrivere un po’ di test: tutti i test che precedentemente andavano hanno deciso di non andare e, dalla test detail view, si poteva notare che il problema era riconducibile ad un’assemlby ben precisa “Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0”, ed il messaggio di errore era il seguente:

Test method Dexter.Core.UI.Framework.Test.Services.PostServiceTest.Get_list_with_valid_data_should_raise_post_retrieved_list_event threw exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

La prima domanda è stata: come mai c’è qualcosa che sta referenziando la versione 9.0.0.0 dello UnitTestFramework quando tutto il progetto è su .NET Framework 4.0? Ma sopratutto chi lo stava facendo?

Il buon Gian Maria mi ha indirizzato verso questo tool (per avviarlo è sufficiente digitare dal prompt di Visual Studiofuslogvw”), che permette di abilitare e consultare il Binding Log tramite una UserInterface, senza andare di conseguenza ad agire manualmente sulle chiavi di registro. Di fatto, dopo aver impostato il livello di logging nella finestra dei settings e rieseguito i test, la finestra del tool si è popolata come da screenshot:

image

La cosa bella è che facendo doppio click sulla voce interessata all’interno della lista viene aperto un ulteriore dettaglio che permette di individuare chi referenzia l’assembly mancante.

image

 

 

In questo caso SharpTestEx.MSTest.

Ciauz


Comments