Запретить CompileAssemblyFromSource создавать временные файлы с повторяющимся именем файла - PullRequest
5 голосов
/ 11 августа 2011

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

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

1 Ответ

0 голосов
/ 13 марта 2017

Я не думаю, что есть.Похоже, что все три варианта (file, DOM и source) создают временные файлы ( source ).
Лучше всего использовать разные временные пути для каждой компиляции.Смотри https://stackoverflow.com/a/37136996/5682035:

CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.TempFiles = new TempFileCollection(tempdir);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...