这两天在使用Crystal Reports开发报表,我们3个人在进行这项工作。开发工具,Visual Studio DoNet 2003,Crystal Reports 9.2.2.693,SourceSave,昨天下午一位同事使用了get latest version获得到本后,发现原来开发出来的报表在运行时都会出现以下错误:
CS1565:编译运行错误,资源在其它地方已使用。
该同事查了两个多小时没有找到问题出在什么地方,然后我们一起讨论这个问题,因为原报表程序已经是可以运行的,问题肯定是出在配置上,于是我打开web.config文件,终于发现了问题的所在,原来webconfig中有这一段代码:
<compilation defaultLanguage="c#" debug="true"><assemblies><add assembly="CrystalDecisions.CrystalReports.Engine, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportSource, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Shared, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Web, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.CrystalReports.Engine, Version=9.2.236, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportSource, Version=9.2.236, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Shared, Version=9.2.236, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Web, Version=9.2.236, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies></compilation>
看到这里,问题已经很明显的展现在我们面前了,原来是web.config里包括了两个Crystal Reports版本的说明,赶紧将以上代码更改:
<compilation defaultLanguage="c#" debug="true"><assemblies><add assembly="CrystalDecisions.CrystalReports.Engine, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportSource, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Shared, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Web, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies></compilation>
重新运行刚才报错的程序,错误终于消失了。
问题的产生原来是由于几个开发人员使用的Crystal Reports不是同一个版本的,导致在checkin文件时,.Net自动生成了web.config文件中的以上代码,这是在配置环境时出现的问题,以后可要汲取教训了。
转载于:https://www.cnblogs.com/cjesse/archive/2004/09/17/43983.html