2011-08-11 7 views
5

Mi aplicación WCF usa código compilado en tiempo de ejecución para calcular algunos valores de un informe. Estoy usando CSharpCodeProvider.CompileAssemblyFromSource para compilar el código. Si el cliente (una aplicación de Silverlight) solicita un informe mientras se calcula otro informe, CSharpCodeProvider.CompileAssemblyFromSource genera archivos temporales con el nombre duplicado, lo que conduce a una IOException ("El archivo 'C: \ Windows \ TEMP \ uviewdyd.out' ya existe. ")Evitar que CompileAssemblyFromSource genere archivos temporales con el nombre de archivo duplicado

¿Alguien sabe cómo prevenir esto?

+0

Parece ser una pregunta muy antigua, tengo un problema similar. ¿Tienes alguna solución? – Jemsworld

Respuesta

0

No creo que exista. Parece que las tres variantes (archivo, DOM y fuente) crean archivos temporales (source).
La mejor forma parece usar diferentes rutas de temperatura para cada compilación. Ver https://stackoverflow.com/a/37136996/5682035:

CSharpCodeProvider prov = new CSharpCodeProvider(); 
CompilerParameters parms = new CompilerParameters(); 
parms.TempFiles = new TempFileCollection(tempdir); 
Cuestiones relacionadas