防止CompileAssemblyFromSource生成具有重复文件名的临时文件

And*_*tes 5 c# wcf compileassemblyfromsource

我的WCF应用程序使用在运行时编译的代码来计算报告的某些值.我正在使用CSharpCodeProvider.CompileAssemblyFromSource来编译代码.如果客户端(Silverlight应用程序)在计算另一个报告时请求报告,则CSharpCodeProvider.CompileAssemblyFromSource会生成具有重复名称的临时文件,这会导致IOException("文件'C:\ Windows\TEMP\uviewdyd.out'已经存在的.")

有谁知道如何防止这种情况?

小智 1

我认为不存在。看起来所有三个变体(文件、DOM 和源)都会创建临时文件()。
最好的方法似乎是为每个编译使用不同的临时路径。请参阅/sf/answers/2599589751/

CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.TempFiles = new TempFileCollection(tempdir);
Run Code Online (Sandbox Code Playgroud)