Ho perso due giorni per cercare di risolvere un problema che credevo derivasse dall'ultima hotfix installata venerdì scorso. Stamattina, dopo aver fatto un repair completo di Visual Studio ed essermi assicurato che della hotfix non ci fosse più traccia, il problema continuava a presentarsi e così mi sono convinto che nonostante le apparenze non fosse imputabile alla hotfix. Così mi sono messo a cercare e alla fine ho scoperto un comportamento "malsano", che ho segnalato nel Product Feedback Center e che vi vado ad illustrare:

Dall'uscita di Visual Studio 2008 sono state introdotte le referenze tra file Javascript che hanno il solo scopo di consentire a VS2008 di fornire un intellisense anche sui propri file javascript. Ne esiste una versione particolare che consente di referenziare un file javascript che sia inserito in un assembly come risorsa embedded. Il problema è che dopo aver inserito tale referenza il compilatore trova bloccato l'assembly nella directory bin e quindi non riesce a sovrascriverlo. L'errore che si ottiene è il seguente:

Unable to copy file "obj\Debug\ClassLibrary.dll" to "bin\Debug\ClassLibrary.dll". The process cannot access the file 'bin\Debug\ClassLibrary.dll' because it is being used by another process.

Il sintomo si presenta solamente quando il file che contiene la referenza è aperto e si lancia la compilazione tanto che se si chiude e si riapre Visual Studio 2008 senza prima chiudere il file Javascript, questo viene riaperto da Visual Studio e il problema continua a presentarsi.

Ecco una piccola solution che riproduce il problema:

Chi avesse il tempo di provare a riprodurre il problema dovrà semplicemente caricare la solution in Visual Studio 2008, aprire i file javascript e poi compilare il progetto. Se il bug è convalidato è possibile segnalarlo nella relativa pagina del Feedback Center: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=328999


Aggiungi Commento