我有一个C#应用程序,可以在C:\Users\xxxx\AppData\Local\Temp
生成临时文件。使用Microsoft.CSharp.CSharpCodeProvider().CompileAssemblyFromSource
生成这些临时文件。对于每个动态程序集,将生成以下文件(.tmp,.out,.err,.dll,.pdb,.cmdline,.cs)。我试着用
result.TempFiles.KeepFiles = false;
但这并不是自动删除这些临时文件。如何在c#应用程序执行结束之前删除这些临时文件?
答案 0 :(得分:1)
KeepFiles
似乎只是flag:
每个临时文件 在集合中有一个关联的保持文件标志,用于确定,打开 每个文件,无论是保留还是删除该文件。档 在编译完成时自动保留或删除 基于其关联的保存文件值。但是,编译后 完成后,可以通过设置 KeepFiles来释放保存的文件 false并调用Delete方法。这将导致所有文件 被删除。
是否需要致电TempFileCollection.Delete
或使用TempFileCollection.Dispose()
:
当您使用该集合时:
result.TempFiles.Delete();
或者
result.TempFiles.Dispose();
这相当于。
答案 1 :(得分:0)
如果您根本不想生成这些临时文件,请在使用/调用CompilerParameters.GenerateInMemory = true;
之前使用CompileAssemblyFromSource