CSharpCodeProvider,编译时的进度信息

时间:2016-05-26 08:18:41

标签: c# codedom csharpcodeprovider compileassemblyfromsource

我在随机大小数据的内存中生成一些代码。这可以产生类似15K类的东西,甚至可以更多。代码存储在List中,我使用Hope This May Help You. 类中的CompileAssemblyFromSource方法。

问题是,在编译时,我希望有一份进度报告,或者可能会有一些输出结果。目前,我的应用程序只是坐在那里,等待5或10分钟。

有没有办法知道这需要多长时间,或者可能会看到最新情况。也许是另一个想法?我希望答案不仅仅是一条消息,说这个过程可能需要几分钟。

1 个答案:

答案 0 :(得分:0)

据我所知,没有办法报告CodeDOM或新的Roslyn编译器中的编译进度。我认为支持这是一个合理的请求,因此您可能需要考虑在the Roslyn repo发出功能请求。

与此同时,您可以根据猜测报告进度。您可以根据输入进行猜测(您现在正在编译 m 千字节的代码,并且编译 n 千字节通常需要 t 秒,所以你希望它采用 t / n · m 秒)或基于最后一次编译,或两者兼而有之。

(我还考虑将每个文件编译成一个单独的netmodule,然后将它们组合成一个程序集。这将允许你在编译每个文件后报告进度。但我认为这样做太复杂了,不值得得到进度报告。)