我的WCF应用程序使用在运行时编译的代码来计算报表的一些值。我正在使用CSharpCodeProvider.CompileAssemblyFromSource编译代码。如果客户端(一个Silverlight应用程序)在计算另一个报告时请求报告,CSharpCodeProvider.CompileAssemblyFromSource会生成具有重复名称的临时文件,这会导致IOException (“文件'C:\Windows\TEMP\uviewdyd.out‘已经存在”)。
有谁知道如何防止这种情况发生吗?
发布于 2017-03-13 19:36:44
我不认为有。看起来这三个变体(文件、DOM和源)都创建了临时文件(source)。
最好的方法似乎是对每个编译使用不同的临时路径。请参阅https://stackoverflow.com/a/37136996/5682035
CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.TempFiles = new TempFileCollection(tempdir);https://stackoverflow.com/questions/7026939
复制相似问题