【问题标题】:Prevent CompileAssemblyFromSource from generate temp files with duplicate file name防止 CompileAssemblyFromSource 生成具有重复文件名的临时文件
【发布时间】:2011-10-25 00:16:37
【问题描述】:

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

有人知道如何预防吗?

【问题讨论】:

  • 这似乎是一个很老的问题,我也有类似的问题。你有解决办法吗?

标签: c# wcf compileassemblyfromsource


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多