Print Search
帖子排序:    
帖子发起人: CrazyDiamond   发起时间: 2006-04-07 16:24 下午   回复: 7
xunchen 离线,最后访问时间: 2008-4-17 10:18:36 CrazyDiamond



发帖数前10位
男
注册: 2005-07-25
合肥
发 贴: 93
请问为什么.net窗体程序首次执行的时候系统进程里面会出现一个csc.exe
 2006-04-07, 16:24 下午

我使用C#开发了一个标准的窗体程序,并且使用了config文件,程序的一开始就调用了WEB service。结果在运行release方式编译的程序时出现了问题。

在xp sp2下,首次运行程序,很长时间窗体都显示不出来,看看系统进程,发现此程序已经运行起来了;然后又发现,进程列表中有一个csc.exe。又等待了很长时间,爆出一个错来:未将对象引用到实例!

如果是第二次运行这个程序,也就是在csc进程已经开启的时候,就会很顺利的显示出窗体。

在网上搜了一下,有人说是因为使用了config文件的原因(原文:原因是配置文件需要XML反序列化,因此每次都要启动csc来编译。),说如果换成二进制文件或者文本文件就没事了。如果是这样,那微软还要这个config文件做什么?

请高手给予指点,谢谢了


IP 地址: 已记录   报告
dcding 离线,最后访问时间: 2006-11-7 13:48:14 dcding

发帖数前10位
注册: 2005-07-23
发 贴: 279
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-04-12, 15:03 下午
csc的目的是编译程序。
我在想你的程序里边是不是用了什么东西需要动态编译的?检查一下?
IP 地址: 已记录   报告
xunchen 离线,最后访问时间: 2008-4-17 10:18:36 CrazyDiamond



发帖数前10位
男
注册: 2005-07-25
合肥
发 贴: 93
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-04-12, 15:19 下午
没有特别的,只是引用的web service。
我现在不使用config文件,另外做了一个文本文件,然后用xml的相关对象读取文档配置信息,这个问题就没出现了。所以我觉得还是和.net程序的config文件有关。
IP 地址: 已记录   报告
stone 离线,最后访问时间: 2007-9-27 15:59:25 Stone Tao



发帖数前25位
注册: 2005-07-24
发 贴: 45
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-04-12, 19:55 下午
你写的是asp.net程序吧。在asp.net中引用web service,.net会根据引用的wsdl动态编译的。
IP 地址: 已记录   报告
xunchen 离线,最后访问时间: 2008-4-17 10:18:36 CrazyDiamond



发帖数前10位
男
注册: 2005-07-25
合肥
发 贴: 93
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-04-13, 09:22 上午
我做的是窗体程序,再简单不过的窗体程序。
IP 地址: 已记录   报告
xunchen 离线,最后访问时间: 2008-4-17 10:18:36 CrazyDiamond



发帖数前10位
男
注册: 2005-07-25
合肥
发 贴: 93
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-05-25, 08:59 上午

 xunchen wrote:
没有特别的,只是引用的web service。我现在不使用config文件,另外做了一个文本文件,然后用xml的相关对象读取文档配置信息,这个问题就没出现了。所以我觉得还是和.net程序的config文件有关。

不得以又把这个问题顶上来,请教各位高手:

这个问题还是没有解决,不使用config文件,还是在运行的时候启动一个csc进程。看来并不是因为config文件引起的,而是其他原因。

我在vs中用debug模式调试的时候从未出现这种问题,只是用release编译后,关闭了vs,直接运行程序的时候会这样。

另外我发现,如果不使用webservice,就不会有这种情况,是不是我的窗体程序在引用webservice的时候没有正确设置,才会造成每次初次运行的时候需要csc编译。


IP 地址: 已记录   报告
dcding 离线,最后访问时间: 2006-11-7 13:48:14 dcding

发帖数前10位
注册: 2005-07-23
发 贴: 279
Re: 请问为什么.net窗体程序首次执行的时候会系统进程里面会出现一个csc.exe
 2006-05-25, 09:12 上午
应该和shitao说的一样,引用web service,.net会根据引用的wsdl动态编译的。
.NET下面对WebService的引用实际上是要根据WSDL生成本地代理类,然后编译运行的。
IP 地址: 已记录   报告
xunchen 离线,最后访问时间: 2008-4-17 10:18:36 CrazyDiamond



发帖数前10位
男
注册: 2005-07-25
合肥
发 贴: 93
Re: 请问为什么.net窗体程序首次执行的时候系统进程里面会出现一个csc.exe
 2006-05-26, 14:31 下午
现在这个问题已经被解决了。
问题的主要原因是引用webservice,不过并不是每台电脑都会出现这个问题。
我在解决方案中,引用了webservice以后,再把它由原来的静态改为动态,这时会自动生成一个app.config配置文件,并在其中配置webservice的URL。
再次编译(Release),运行一切正常。
IP 地址: 已记录   报告
合肥微软技术中心社区 » 技术讨论区 » .NET技术相关 » Re: 请问为什么.net窗体程序首次执行的时候系统进程里面会出现一个csc.exe

Powered by Community Server Powered by CnForums.Net