Cancellare l’incacellabile su Windows Vista

Vista ha decisamente portato dei miglioramenti e delle nuove feature, e non sto qui ad enumerarli. Però, come ogni nuovo software che si rispetti, ha portato anche dei bug.

Uno di questi (mi verrebbe quasi da dire le UAC – NDR) è il fatto che l’OS ci metta anni luce per spostare anche file di piccole dimensioni e quel che è peggio è che faccia il lock di alcuni file in maniera esclusiva e irrisolutiva.

Mi ritrovavo con dei progetti in VS 2005, che giusto dopo il primo debug (quindi compilazione prima e debug poi), non potevano essere ricompilati nuovamente a causa di un lock esclusivo da non si sà chi.

Ricevevo in pratica questo messaggio di errore:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.

targets(2314,9): error MSB3021: Unable to copy file

“obj\Debug\ConsoleApplication1.exe” to “bin\Debug\ConsoleApplication1.exe”.

The process cannot access the file ‘bin\Debug\ConsoleApplication1.exe’

because it is being used by another process.

Done building project “ConsoleApplication1.csproj” – FAILED

Chiaramente il messaggio cambiava nel path a seconda del progetto; presto mi sono reso conto anche che la situazione era estesa anche ad altri file nel pc, giusto dopo essere stati creati o eseguiti (e parlo di file scaricati da internet ed eseguiti – non altro) che si loccavano alla stessa identica maniera.

Dopo aver comunque aperto un incident MSDN per ricevere supporto, sulle prime il tecnico mi ha suggerito tecniche e consigli già provati e che comunque si riferivano tutti a VS 2003: esempio chiudere e riaprire il progetto, mettere il copy local agli assembly referenziati.
Cose che non hanno dato i risultati sperati. L’unica cosa che funzionava era il reboot.

Non ci stanno infatti tool che tengano, dal gratuito Unlocker (tool francese) all’Handle di Rossinovich – dove il primo non trova nemmeno l’handle che blocca il file, mentre il secondo lo trova ma non riesce a cancellarlo.

Fare un takeown e un icacls, non serve a niente. I file stanno li e non si schiodano.

Ma c’è sempre un però. Dopo alcuni ricerche, mi sono imbattuto in un micro post che faceva riferimento all’articolo KB 931770, che sebbene non citasse nello specifico il problema, sembrava risolutivo per la questione.

Chiamato MS 10 minuti fa, ricevuta la fix dopo 2 minuti, applicata dopo 1 (niente reboot necessario) e ora solo felice possessore dei miei file e sembra che posso cancellarli quando voglio e compilare quante volte mi pare.

Parlo ancora al condizionale, perchè non sono del tutto sicuro che l’odissea sia finita. Magari al prossimo reboot dovrò postare smentita.

Ore 15:19 : Ecco la smentita

Faccio reboot, riprovo a vedere se tutto funziona, e tristemente scopro che non funziona più un tubo. Mi viene quasi voglia di provare a reinstallare la patch. Ma sicuramente, senza nemmeno che ci riprovo, il sistema dirà che la patch è già presente o altre menate varie.

Mi rimetto al tecnico Microsoft al quale ho consigliato di rivolgersi al team di sviluppo di Vista per chiarire questa situazione.