Framework 2.0 C# System.Core.dll 引用不到?

代码:staticpublicintextension(thisstringsStr,charch,intn)注:我用的是vs2008,Framework2.0。错误59... 代码:static public int extension(this string sStr,char ch,int n)
注:我用的是vs2008,Framework 2.0。

错误 59 无法定义新的扩展方法,因为找不到编译器所需的类型“System.Runtime.CompilerServices.ExtensionAttribute”。是否缺少对 System.Core.dll 的引用?

但是我添加引用的时候System.Core项却是灰色的无法添加。请问是不是Framework 2.0不能用System.Core.dll啊?

看网上高人说可以自己写个“System.Runtime.CompilerServices.ExtensionAttribute”这玩意,乖乖。

哪个高人指点一下啊。偶会感激地!!在线等啊⊙﹏⊙!!
展开
 我来答
acehb70
2011-02-24 · TA获得超过638个赞
知道小有建树答主
回答量:747
采纳率:0%
帮助的人:172万
展开全部
于我的机器上没有安装Ajax的原因。问题解决后,整理如下:
表现:
1、”System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。

2、后台系统即使添加引用后,不管此引用是系统还是用户,他们的属性和方法都不能识别;

解决方案一:

1、如果你的程序运行在你能控制的服务器上,那么安装asp.net ajax就行了,这是System.Web.Extensions等dll做为GAC部署;(一般安装ajax就能解决)
2、如果你的程序运行在虚拟主机上(无权安装程序),那么需要把System.Web.Extensions.dll和System.Web.Extensions.Design.dll
(通常在C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025目录下)2个dll复制到你的web程序的bin目录下就行了,这是应用程序级别的部署。
同时注意要检查web.config中的代码:

<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
<controls>
<add tagPrefix="atlas" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>

解决方案二:

1.打开web.config,找到以下相关结点:
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"></add>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
2.将这些结果注释掉或删除,再重新编译就可以了.

这是因为VS2005编译的AJAX是1.0的,而VS2008能同时编译AJAX1.0和其他版本的.所以会出现冲突.

解决方案三:

PublicKeyToken=31bf3856ad364e35”
或它的某一个依赖项。系统找不到指定的文件
将asp.net Ajax安装上,然后将X:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 Ajax Extensions\v1.0.61025
目录下的System.Web.Extensions.Design.dll文件加到项目的bin目录下,文件复制到网站bin目录 下后再次运行,
安装了asp.net Ajax后会有三个dll文件

System.Web.Extensions.Design.dll

AjaxExtensionsToolbox.dll

System.Web.Extensions.dll

一般应该将这三个文件都添加到项目的bin目录下,要保险的话,全部复制进去吧
blufo
2011-02-23 · TA获得超过109个赞
知道答主
回答量:46
采纳率:0%
帮助的人:29.2万
展开全部
好长时间不写了,但是如果是没有System.Core.dll。。你可以从别的地方download的一个copy到需要的地方,然后从vs里面引用下。。。笨方法 你试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贼寇在何方
推荐于2016-05-20 · TA获得超过770个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:714万
展开全部
没错,这个函数是.Net 3.5才有的扩展方法
把项目属性中的.Net framework 版本改成3.5或者更高就可以了
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式