He escrito un script de PowerShell para compilar varias soluciones .net una después de la otra. Simplemente hace varias llamadas a tfget (para obtener las últimas) seguido de llamadas a devenv.exe (para compilar los archivos .sln).¿Por qué PowerShell no puede construir mis soluciones .net? ("el archivo está siendo utilizado por otro proceso")
Aquí está el código:
tfget -item $SolutionPath -overwrite -recurse -ev +errors
...
$out = invoke-expression "devenv.com /rebuild debug $SolutionPath"
Casi cada vez que ejecute el guión una de las soluciones para construir falla y me da un error de CSC.exe diciendo (?):
de error CS1606: error en la firma de ensamblaje; La salida no puede estar firmada: el proceso no puede acceder al archivo porque está siendo utilizado por otro proceso.
Esto sucede a pesar de que he cerrado todas las instancias de Visual Studio que contienen estas soluciones y no tengo ninguno de sus archivos ejecutados en mi máquina.
Un archivo de lote similar que he escrito funciona bien. Solo PowerShell se queja del archivo que está utilizando otro proceso.
¿Cómo puedo evitar que esto suceda? ¿Hay algún ejemplo mejor de construir soluciones .net a través de PowerShell?
¿Puedes pegar tu código? – stej
Hola Stej, acabo de actualizar la pregunta para incluir una muestra de código. – urig
¿Existe alguna razón específica por la que desee usar devenv.exe para compilar en lugar de MSBuild? – Filburt