Ho scritto uno script PowerShell per creare diverse soluzioni .net una dopo l'altra. Fa semplicemente diverse chiamate a tfget (per ottenere l'ultima) seguita da chiamate a devenv.exe (per creare i file .sln).Perché PowerShell non riesce a creare le mie soluzioni .net? ("il file viene utilizzato da un altro processo")
Ecco il codice:
tfget -item $SolutionPath -overwrite -recurse -ev +errors
...
$out = invoke-expression "devenv.com /rebuild debug $SolutionPath"
Quasi ogni volta che faccio funzionare lo scritto una delle soluzioni non riesce a costruire e ottengo un errore da Csc.exe dire (?):
errore CS1606: la firma dell'assembly non è riuscita; L'output potrebbe non essere firmato: il processo non può accedere al file perché viene utilizzato da un altro processo.
Ciò accade anche se ho chiuso tutte le istanze di Visual Studio che contengono queste soluzioni e non ho nessuno dei loro ex in esecuzione sul mio computer.
Un file batch simile che ho scritto funziona bene. È solo PowerShell che si lamenta del file utilizzato da un altro processo.
Come evitare che ciò accada? Esistono esempi migliori di soluzioni .net tramite PowerShell?
È possibile incollare il codice? – stej
Ciao stej, ho appena aggiornato la domanda per includere un esempio di codice. – urig
Esiste un motivo specifico per cui si desidera utilizzare devenv.exe per la compilazione anziché MSBuild? – Filburt