删除在c#应用程序中使用CompileAssemblyFromSource生成的临时文件

删除在c#应用程序中使用CompileAssemblyFromSource生成的临时文件,c#,asp.net,C#,Asp.net,我有一个C应用程序,它在C:\Users\xxxx\AppData\Local\temp生成临时文件。这些临时文件是使用Microsoft.CSharp.CSharpCodeProvider().CompileAsemblyFromSource生成的。对于每个动态程序集,将生成以下文件(.tmp、.out、.err、.dll、.pdb、.cmdline、.cs)。我试着用 result.TempFiles.KeepFiles = false; 但这并不是自动删除这些临时文件。如何在c#应用程序

我有一个C应用程序,它在
C:\Users\xxxx\AppData\Local\temp
生成临时文件。这些临时文件是使用Microsoft.CSharp.CSharpCodeProvider().CompileAsemblyFromSource生成的。对于每个动态程序集,将生成以下文件(.tmp、.out、.err、.dll、.pdb、.cmdline、.cs)。我试着用

result.TempFiles.KeepFiles = false;

但这并不是自动删除这些临时文件。如何在c#应用程序执行结束之前清除这些临时文件?

保留文件
似乎只是一个:

每个临时文件 集合中有一个关联的keep file标志,该标志确定 以每个文件为基础,无论该文件是保留还是删除。文件夹 在编译完成后自动保留或删除 基于其关联的“保留文件”值。但经过整理, 完成后,可以通过设置禁止文件来释放保留的文件 false并调用Delete方法。这将导致生成所有文件 正在删除

将需要呼叫或使用:

使用完集合后:

result.TempFiles.Delete();


它们是等效的。

如果您根本不希望生成这些临时文件,请使用
CompilerParameters.GenerateInMemory=truecompileasemblyfromsource


请参阅

我正在标记标志
result.TempFiles.KeepFiles=falseresult=new Microsoft.CSharp.CSharpCodeProvider().compileasemblyfromsource
,然后使用
result.TempFiles.Dispose()
在使用CompileAseMblyFromSource之前是否应提升KeepFile标志?@Anky
KeepFile
在调用
Delete
之前应为false,以便它知道不保留任何文件。
result.TempFiles.Dispose();