The type 'xxx' exists in both '.../项目名.dll' and '.../App_Code.0qkogcke.dll'错误总结
来源:互联网 发布:手机淘宝保证金交不了 编辑:程序博客网 时间:2024/06/08 18:22
本来自己是要做android和ios项目。最近公司却分配了一个asp.net的项目任何给我,先给了一个asp.net项目源文件给我,要我看。
我是从c#学起的,不过还好,有java和jsp的基础,看起来还不算很吃力。但是东西学完,第一件事就是打开公司给的项目源文件。却发现公司给的文件很奇怪,不仅用vs2010打开,只看到其中的dll文件相关的头文件。看不到主程序代码。公司里暂时只有我会做asp.net,没办法,只能自己解决。
我想到的就是在客户那边,这个项目可以运行,也就是说iis应该可以发布网站,果然iis新建应用程序池、新建虚拟目录之后,就可以打开这个网站了。但是我要看明白,最好能够直接在源代码上做测试。我开始想办法把项目做成可以在vs2010上打开。首先,既然可以在iis上发布,说明代码本身应该是没有问题的,应该是工程的设置问题。
于是我新建了一个c# empty web application工程, 把原来的代码全部拷贝到新建的文件夹上。直接在文件夹上过来拷贝的文件,没有直接显示到vs2010中。查了资料,才知道要点击shows all files按钮,显示所有文件,才能显示出该文件夹下所有文件。
但是这样在aspx.cs文件上还有提示编译错误。错误在using语句,是dll文件里面的类找不到。网上都说只要把dll文件放到bin文件夹就可以引用到,但是我引用不到。找了很久资料,都没有结果。在我有点心灰意冷的时刻,突然发现工程里面按show all files按钮之后,一些按钮是白色的,并不是正常的黄色的。于是我就查这个现象,我本来以为这个是个很明显的问题,应该很多人遇到吧,却发现相关资料很少。找了好一会,才找到一个说,可以右击文件夹,然后点击include in project按钮。本来只是以一个试试的心态,想不到真的有效果。
带着上一个成功,我动力好像变大了,但是问题还是存在。这次很快,就找到,原来还需要在工程中右击add reference来添加dll文件。虽然操作和网上说的:“只要把dll放到bin就可以使用”,这个说法相悖,但毕竟有效果了。using语句没有提示错误了。但是运行debug,却很多错误提示,提示很多找不到类异常,发现都指向App_Code文件夹下的cs文件。
我记得又花了2个钟去搜问题,这次这个问题几乎完全搜不到网上有人遇到类似的问题。也是在偶然间,看到一篇文章说到把“操作事件”属性设置为编译。我要尝试一下,却发现我的英文版,文件属性上没有操作属性这栏,比较了一下,中英文都是4个属性,最接近“操作事件”的英文是“build action”,发现选项的确是一样的,应该是中英文版的这两个按钮的位置不一样。把文件的这个属性设置为compile(编译)之后,其他文件的编译错误又减少了。后来用类似的方法,发现axps.cs文件需要设置“build action”属性为embeded resource才行。
终于发现vs上再也没有看到恼人的编译错误了。但是start without debug一下,却发现抛出了一个奇怪的异常,也就是标题上的异常:
The type 'xxx' exists in both '.../项目名.dll' and '.../App_Code.0qkogcke.dll'
这个是我处理得最辛苦的异常。从英文描述来看,就是windows路径上了两个dll文件里面有相同的类,vs不知道应该解释为哪个类,导致错误。
这个错误只有英文资料,没有任何中文资料。
如果有人遇到可以参考这个网址,有很多人都有不同的解决办法:http://www.sellsbrothers.com/Posts/Details/1995
上面大概有7、8种解决办法,我是一个一个解决办法的尝试下来,最后是按照一种一个人的说法:新建一个web site,然后把原来的代码全部拷贝过来。居然发现不用再修改任何的配置,就可以直接start without debug打开了。而且运行正常。
这个解决方法的关键是:web application和web site究竟有什么不同。我暂时只看到新建这两种项目的空项目的时候:
web application会新建出好几个文件夹:
web site新建出来只有一个文件:
从文件来分析:
(1)web site是最简单的项目,只有一个web.config文件。而web application中的bin文件夹,用于存放加载的dll文件;obj文件夹暂不清楚;properties文件夹存放项目的说明数据:AssemblyInfo.cs文件。另外还有.csproj文件和csproj.user文件。这些文件夹主要应该是跟文件组织和debug相关的。
也就是说,web application比web site多了一些debug的单元和文件组织的功能。
(2)但是从The type 'xxx' exists in both '.../项目名.dll' and '.../App_Code.0qkogcke.dll'这个错误来看,web application至少还有生成项目的dll的作用,而且还在两个地方同时生成了两个文件名不同的dll文件。这其中的原来是什么暂时也不知道。
asp.net和jsp查找问题,最大的不同就是网上的jsp的资料真的比较多,特别是针对eclipse来开发jsp和ssh的资料。但是相对而言,asp.net的问题,却没有那么丰富。这个其实是一个比较奇怪的现象,我曾经想过自己做一个jsp的网站,但是发现jsp的网站空间比asp/asp.net/php的都贵。也就是说,个人开发成本来开,应该更多人会选择asp.net才对,但是事实上,asp.net的资料却不一定比jsp多。
总结了一大堆问题,还有很多还没有解决的问题。这次的问题解决办法非常简单,我却花了很多时间,究其原因,其中一个就是网上asp.net的资料和讨论都相对比较少。很希望这个文章可以帮到一些人。希望其他人不会像我这样走了这么多弯路。也希望知道我还没知道的答案的高手们赐教。
- The type 'xxx' exists in both '.../项目名.dll' and '.../App_Code.0qkogcke.dll'错误总结
- ASP.NET error: The type exists in both directories
- WEB项目添加App_code文件夹的问题-产生XXX 类型同时存在于两个DLL中的错误
- ASP.NET预编译发布后访问出现异常:The type 'ASP.global_asax' exists in both ....
- The procedure entry point XXX could not be located in the dynamic link library XXX.dll
- The ActiveX DLL Project Type
- 关于C#中的错误:The type 'X' does not exists in the "Y"
- 系统提示“找不到xxx.dll ”或“xxx.dll 丢失” 或者“xxx.dll 错误”的问题
- The servlets named [xxx] and [com.web.xxx] are both mapped to the url-pattern
- maven创建Web项目启动错误The servlets named [X] and [Y] are both mapped to the url-pattern [/DemoServlet]
- 错误:Unable to load library 'xxx': Native library (win32-x86/xxx.dll) not found in resource p
- 错误The type XXX is deprecated解决
- 错误:the public type XXX must be defined in its own file.
- On the error "Type universe cannot resolve assembly" ( in VS2010 using WeifenLuo.WinFormsUI.Docking.dll)
- 无法将文件”obj\debug\XXX.dll复制到“bin\Debug\XXX.dll”的错误?
- 关于错误 Unhandled exception in (KERNEL32.DLL):0xE06D7363:Microsoft C++ Exce vc and access insert 记录
- VS中dll项目总结
- bypass dll authentication in sygate and such
- 移动应用具备功能
- curl参数大全
- 安装oracle grid 时遇到的问题
- getifaddrs, freeifaddrs manual
- 请问我接的宽带网线里面那些带颜色的线是什么顺序?
- The type 'xxx' exists in both '.../项目名.dll' and '.../App_Code.0qkogcke.dll'错误总结
- PowerDesigner创建Oracle数据库序列实现自动增长
- 水晶报表动态调整字段位置
- DSPBuilder仿真参数的设置solver?
- UIButton
- 不同编程语言代码转换网站,在线编程语言代码转换,C#转VB.NET,VB.NET转C#
- CentOS6.2+MySQL5.5+Nginx+PHP5.3.14安装文档
- C++中set,map使用自定义类型
- 智能视频新技术