Запретить CompileAssemblyFromSource создавать временные файлы с повторяющимся именем файла

Мое приложение WCF использует код, скомпилированный во время выполнения, для вычисления некоторых значений отчета. Я использую CSharpCodeProvider.CompileAssemblyFromSource для компиляции кода. Если клиент (приложение Silverlight) запрашивает отчет во время вычисления другого отчета, CSharpCodeProvider.CompileAssemblyFromSource генерирует временные файлы с дублированным именем, что приводит к исключению IOException ("Файл" C:\Windows\TEMP\uviewdyd.out "уже существует). существует.")

Кто-нибудь знает, как это предотвратить?

1 ответ

Я не думаю, что есть. Похоже, что все три варианта (файл, DOM и источник) создают временные файлы ( источник).
Лучше всего использовать разные временные пути для каждой компиляции. См. /questions/32248923/ioexception-pri-dinamicheskoj-kompilyatsii-koda/32248937#32248937:

CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.TempFiles = new TempFileCollection(tempdir);
Другие вопросы по тегам