Oggi riaprendo un vecchio progetto, il mio caro e buon Visual Studio 2005 ha deciso di farmi un bello scherzetto: aprendo un qualsiasi form con il designer (il progetto è costituito da un'applicazione Windows Form e da tante librerie) ecco quello che mi saltava fuori:
L'errore saltava fuori solo in design time. Il progetto infatti si compilava senza problemi e andava in esecuzione come ha sempre fatto. Ho installato l'SP1 di Visual Studio 2005 e non ho mai avuto un problema del genere con questo progetto.... Però qualcosa di nuovo ho fatto: ho cambiato lavoro prima e di conseguenza anche computer poi!. Il progetto è passato dalla mia vecchia azienda a quella nuova, ma sostanzialmente è rimasto lo stesso.
Andando a spulciare sul caro google (che mondo sarebbe senza google), ho trovato una segnalazione su Connect in cui viene sostanzialmente detto che è un problema di reference errate. Controllando in tutti i progetti della soluzione non ho notato nessuna broken reference e del resto il progetto si compila senza problemi. Provando ad eliminare la directory \bin dell'applicazione Windows Form e la directory \obj è saltato fuori il problema: sostanzialmente nella nuova macchina non avevo installato delle componenti .NET per la gestione della posta che una delle librerie della soluzione utilizza. La cosa strana è che queste librerie erano comunque presenti nella \bin dell'applicazione Windows.
In ogni caso reinstallando queste librerie e riaggiungendo le reference a questi assembly tutto è andato a posto.