使用GenerateInMemory时,CodeDomProvider仍使用TempFiles

时间:2018-10-06 13:48:55

标签: c# codedom

因此,我正在运行多线程操作,该操作通常在完全相同的时间运行完全相同的源以进行汇编/编译,从而导致它返回异常,表明它无法访问本地应用程序数据中的文件。 (通常是.err或.out文件),但是在CompilerParameters中,我告诉了int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if (((year % 4 == 0) && !(year % 100 == 0))|| (year % 400 == 0)) numDays = 29; else numDays = 28; break; default: System.out.println("Invalid month."); break; } System.out.println("Number of Days = " + numDays); }

为什么它存储临时文件,我该如何防止呢?

1 个答案:

答案 0 :(得分:1)

CodeDom将始终生成临时文件。 GenerateInMemory选项仅与是否将输出dll保存到磁盘有关。

您可以将CompilerParameters的TempFiles属性设置为选择的安全路径,但是通常生成的临时文件具有唯一的随机文件名,因此我不确定您会遇到什么冲突。