首页 新闻 搜索 专区 学院

.NET是什么时候判断程序集是否已经加载的?

0
悬赏园豆:100 [已关闭问题]
我的WinForm程序,每次打开其中一个窗口frmPersonClientInfo,就会有下面的异常 <BR>--------------- <BR>************** 异常文本 ************** <BR>System.IO.FileNotFoundException: 未能加载文件或程序集“CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。 <BR>文件名:“CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304” <BR>&nbsp; 在 NPSys.ClientApp.Client.frmPersonClientInfo.InitializeComponent() <BR>&nbsp; 在 NPSys.ClientApp.Client.frmPersonClientInfo..ctor() <BR>&nbsp; 在 NPSys.ClientApp.frmMain.ToolStripMenuItem_Click(Object sender, EventArgs e) <BR>&nbsp; 在 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) <BR>&nbsp; 在 System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) <BR>--------------- <BR>我知道这个异常说明我需要安装水晶报表,但是这个需要打开的窗口是没有引用水晶报表的功能的 <BR>为了避免出错,我还专门Ctrl+F搜索了 这个窗体的代码,里边确实没有 Crystal 之类的字符串 <BR><STRONG><SPAN style="COLOR: #ff0000">1.我的第一个问题是为啥不用水晶报表的窗体,打开的时候也会提示没有加载水晶报表的异常?因为这个程序的其他窗口是可以正常打开的,唯独这个不行……</SPAN></STRONG> <BR>为了找在什么地方抛的异常,我在这个窗体的构造函数里边,InitializeComponent();的前一行添加了一个MessageBox,在InitializeComponent()函数中的第一行也加了一个MessageBox,结果第一个MessageBox正常弹出,接着就抛异常了,第二个MessageBox不能出来。我很纳闷,其实两个MessageBox是挨着的,一个在函数里边,一个在外边,为啥调用InitializeComponent();之前一切正常,调用的时候就出错了呢? <BR><SPAN style="COLOR: #ff0000"><STRONG>2.我的第二个问题是,.NET是什么时候判断程序集时候已经加载的?</STRONG></SPAN>
小墨的童鞋的主页 小墨的童鞋 | 初学一级 | 园豆:100
提问于:2008-08-27 14:59
< >
分享
其他回答(4)
0
看看项目的引用里面是不是有这个~~
沙加 | 园豆:3680 (老鸟四级) | 2008-08-27 15:28
0
看看你窗口的命名 有时候调试的时候看不出来命名的问题 但是运行的时候由于命名一样是 有可能覆盖程序集的 这样运行的时候就会出错
小眼睛老鼠 | 园豆:2779 (老鸟四级) | 2008-08-27 16:03
0
WinForm不太熟悉,不过可以推测一下。 1.“这个程序的其他窗口是可以正常打开的,唯独这个不行”,是不是说其它没用水晶报表的窗口可以打开?如果可以的话,那只能说明在这个窗体中确实有水晶报表的东西,可以详细看一下frmPersonClientInfo.designer.cs文件,因为InitializeComponent方法报错,大部分东西都在这个文件里。 2.程序集的加载,是在JIT编译的时候,JITCompiler会去在程序集元数据中查找被调用的方法IL。
TerryLee | 园豆:3300 (老鸟四级) | 2008-08-27 20:26
0
你这个窗体里面可能放了什么控件和水晶报表有关。
eaglet | 园豆:17119 (专家六级) | 2008-08-28 12:29
0
1.检查frmPersonClientInfo.designer.cs文件中是否有不符的代码. 2.检查引用. 3.窗体要在设计器中显示时,它所加载所有引用的程序集.
hackenliu | 园豆:600 (小虾三级) | 2008-08-29 11:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册