Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Assembly.GetTypes()在生成后事件中速度慢,但在调试时速度快?_C#_.net_.net Assembly - Fatal编程技术网

C# Assembly.GetTypes()在生成后事件中速度慢,但在调试时速度快?

C# Assembly.GetTypes()在生成后事件中速度慢,但在调试时速度快?,c#,.net,.net-assembly,C#,.net,.net Assembly,在一个构建后事件中,我们需要运行一个小型应用程序,该应用程序为一些程序集调用Assembly.GetTypes() 代码如下所示(简化): 调试此代码时,GetTypes()对于每个程序集只需要几毫秒。但是,当作为构建后事件运行它时,特定程序集需要大约一分钟的时间(但仅在我的电脑上,它在我同事的电脑上正常工作) 你知道这是什么原因吗?(Assembly.Load()/LoadFrom()/LoadFile()没有区别) 谢谢你,并致以最良好的问候, Maggi您确定是assembly加载导致生成

在一个构建后事件中,我们需要运行一个小型应用程序,该应用程序为一些程序集调用Assembly.GetTypes()

代码如下所示(简化):

调试此代码时,GetTypes()对于每个程序集只需要几毫秒。但是,当作为构建后事件运行它时,特定程序集需要大约一分钟的时间(但仅在我的电脑上,它在我同事的电脑上正常工作)

你知道这是什么原因吗?(Assembly.Load()/LoadFrom()/LoadFile()没有区别)

谢谢你,并致以最良好的问候,
Maggi

您确定是assembly加载导致生成后事件需要时间吗?你是如何得出这个结论的?是的,我确信这是由Assembly.GetTypes()引起的。使用探查器YourKit,我可以看到它卡在Assembly.GetTypes()中。之后,我扩展了应用程序的日志记录(包括时间戳)以确认这一点(成功)。我在一个C++CLI项目中遇到了类似的问题,该项目将Metagen作为构建后任务运行,并且在Module.GetTypes()中停留了10多分钟。
var assembly = Assembly.LoadFrom(fis.FullName);
var allTypes = assembly.GetTypes();
...