我的WCF应用程序使用在运行时编译的代码来计算报告的某些值。我正在使用CSharpCodeProvider.CompileAssemblyFromSource来编译代码。 如果客户端(Silverlight应用程序)在计算另一个报告时请求报告,则CSharpCodeProvider.CompileAssemblyFromSource会生成具有重复名称的临时文件,这会导致IOException(“文件'C:\ Windows \ TEMP \ uviewdyd.out'已经存在。“)
有谁知道如何防止这种情况?
答案 0 :(得分:0)
我不认为有。看起来所有三个变体(文件,DOM和源)都创建临时文件(source) 最好的方法似乎是为每个编译使用不同的临时路径。见https://stackoverflow.com/a/37136996/5682035:
CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.TempFiles = new TempFileCollection(tempdir);