阿修--一直在自我修炼,希望能得到百年道行

湖南微软开发者俱乐部

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近把一些东西开始往Linux迁移了,因为老系统大部分都是.NET,所以直接使用Mono,代码一般都使用MonoDevelop把代码重新编译,把一些WMI和windows DLL调用改Linux的os调用,这些都是好说,网上很多教程,但是最郁闷的关于WebService问题,把自己的dll丢过去就报下面错误,单独的ASMX文件里面写代码没问题,好奇怪。

System.Web.Compilation.CompilationException

CS1703: An assembly with the same identity `mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Consider removing one of the references

 

最后查到有个命名空间System.Globalization不能在csusing或者ASMX里面<%@ Import Namespace="System.Globalization" %>,一旦有这种写法都是上面错误斥候,你妹的,定位这问题把整个mono的文件夹翻了一遍,搞了一整天,这谁写的代码,测试太不到位,网上好多对这问题的解决方案都是绕过去走WCF,IOS上面说可以在编译设置里面勾选"do not reference mscorlib.dll",总之我是编译不通过的,因为System.Object就在这里面,是.NET的核心之核心!

 

所以大家如果碰到这错误,可以找下所有的CS和ASMX文件里面有System.Globalization引用,仅仅是引用,代码里面如要使用用完整命名空间即可,如:

Response.Write("dddd" + System.Globalization.StringInfo.GetNextTextElement("ABCDEFG", 1));

posted on 2013-06-27 22:38  阿修  阅读(3327)  评论(1编辑  收藏  举报