我有一个WinForm应用程序。我编译它,双击它。可以预见的是,csc.exe启动,然后消失,应用程序出现。
我假设此时应用程序已被jitted,因此csc.exe没有理由再次启动。
然后我退出应用程序并重新启动它。我看到csc.exe再次启动。
发生了什么事?
答案 0 :(得分:4)
您是否正在使用序列化?我相信在某些情况下会建立临时集会。您的应用中有类似的东西吗?
请注意,JIT编译器与csc无关,因此不应该与它有任何关系。
答案 1 :(得分:2)
如果使用序列化,则需要编译动态程序集以创建所需的类。
这意味着大多数webservice调用都会导致第一次调用csc.exe 。之后,动态dll应该是缓存。
答案 2 :(得分:1)
如果您使用XmlSerializer(直接或间接,即在调用Web服务时),则在其中生成具有序列化程序实现的临时程序集:根据反射信息创建源文件并使用csc.exe进行编译。您可以按开发时间SGen预生成序列化程序。