Vista la disponibilità della versione 6.0 del runtime di Service Fabric ho aggiornato la mia macchina di sviluppo, ma la cosa non è andata propriamente “liscia”, nonostante abbia usato il Web Platform Installer come ho sempre fatto per le versioni precedenti.
La procedura di setup usa uno script PowerShell chiamato CleanFabric.ps1, che si trova in C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code. Lo script elimina l’installazione precedente prima di procedere al setup della nuova versione...
...Se ci riesce!
Nel mio caso, l’upgrade si è bloccato con questo errore:
“Unable to delete C:\Program Files\Service Fabric. Delete manually”
Se bastasse questo, sarebbe troppo facile: purtroppo, alcuni file risultavano in uso da qualche processo sconosciuto.
Il motivo è che il setup di Service Fabric installa due driver ad un livello di Sistema Operativo abbastanza "basso":
KtlLogger.sys KtlLogger: KTL Physical Logger Device Driver (c:\program files\microsoft service fabric\bin\fabric\fabric.code\ktllogger.sys)
LeasLayr.sys LeasLayr: Lease Layer Device Driver (c:\program files\microsoft service fabric\bin\fabric\fabric.code\leaslayr.sys)
Questi driver erano ovviamente in uso da Windows al momento del setup, motivo per cui né il setup stesso, né il sottoscritto sono riusciti ad eliminare la cartella.
L’unica soluzione che ho trovato è stato usare il tool "autoruns.exe" di San Mark Russinovich (https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns): tramite il tool ho disabilitato i drivers, in modo che non vengano attivati in automatico da Windows allo startup.
Ho poi riavviato il PC e eliminato manualmente la cartella senza problemi. A questo punto il setup della nuova versione si è concluso correttamente, riconfigurando correttamente i driver.
Lo posto qui, nel caso possa servire ad evitare qualche mal di pancia... ;-)
Technorati Tags:
Service Fabric