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

时间:2011-08-11 13:44:14

标签: c# wcf compileassemblyfromsource

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

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

1 个答案:

答案 0 :(得分:0)

我不认为有。看起来所有三个变体(文件,DOM和源)都创建临时文件(source) 最好的方法似乎是为每个编译使用不同的临时路径。见https://stackoverflow.com/a/37136996/5682035

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