首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除在c#应用程序中使用CompileAssemblyFromSource生成的临时文件

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

Stack Overflow用户
提问于 2015-06-11 14:56:30
回答 2查看 1.4K关注 0票数 2

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

代码语言:javascript
复制
result.TempFiles.KeepFiles = false;

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

EN

回答 2

Stack Overflow用户

发布于 2015-06-11 15:04:14

KeepFiles似乎只是一个flag

集合中的每个临时文件都具有相关联的保留文件标志,该标志基于每个文件确定是保留还是删除该文件。文件在编译完成时会根据其关联的保留文件值自动保留或删除。但是,在编译完成后,可以通过设置deleted并调用方法来释放保留的文件。这将导致所有文件被删除。

将需要调用TempFileCollection.Delete或使用TempFileCollection.Dispose()

使用完集合后:

代码语言:javascript
复制
result.TempFiles.Delete();

代码语言:javascript
复制
result.TempFiles.Dispose();

它们是等价的。

票数 1
EN

Stack Overflow用户

发布于 2015-06-12 20:31:45

如果您根本不想生成这些临时文件,那么在使用/调用CompileAssemblyFromSource之前使用CompilerParameters.GenerateInMemory = true;

请参考https://msdn.microsoft.com/en-us/library/system.codedom.compiler.compilerparameters.generateinmemory(v=vs.110).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30773707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档