[英]Delete Temp files generated by using CompileAssemblyFromSource in c# application
我有一個 C# 應用程序,它在C:\\Users\\xxxx\\AppData\\Local\\Temp
生成臨時文件。 這些臨時文件是使用Microsoft.CSharp.CSharpCodeProvider().CompileAssemblyFromSource
。 對於每個動態程序集,會生成以下文件(.tmp、.out、.err、.dll、.pdb、.cmdline、.cs)。 我試着用
result.TempFiles.KeepFiles = false;
但這不會自動刪除這些臨時文件。 如何在 c# 應用程序執行結束之前擺脫這些臨時文件?
KeepFiles
似乎只是一個標志:
集合中的每個臨時文件都有一個關聯的保留文件標志,該標志根據每個文件確定是保留還是刪除該文件。 編譯完成后,文件會根據相關的保留文件值自動保留或刪除。 但是,編譯完成后,可以通過將KeepFiles設置為 false 並調用 Delete 方法來釋放保留的文件。 這將導致所有文件被刪除。
需要調用TempFileCollection.Delete
或使用TempFileCollection.Dispose()
:
使用完集合后:
result.TempFiles.Delete();
或者
result.TempFiles.Dispose();
哪些是等價的。
如果您根本不想生成這些臨時文件,請使用CompilerParameters.GenerateInMemory = true;
在使用/調用CompileAssemblyFromSource
之前
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.