VS2017 ASP.NET C#编译ScriptManager bug

使用VS2017(使用的是当前企业最新版15.5.5) C#做ASP.NET项目时,在“控制台应用程序”与“类库”输出类型切换时遇到错误:

error CS0234: 命名空间“System.Web.UI.WebControls”中不存在类型或命名空间名“ScriptManager”(是否缺少程序集引用?)

error CS0234: 命名空间“System.Web.UI.WebControls”中不存在类型或命名空间名“UpdatePanel”(是否缺少程序集引用?)

错误的文件位于“XXX.designer.cs”文件,该文件是VS自动生成的。

网上搜索该问题大量存在,很多是由于使用新版本的VS打开产生的。解决方法有修改web.config文件的,有修改引用的dll文件的,甚至还有修改C盘下某个dll文件的,感觉都不太靠谱。

自己新建了一个ASP.NET项目,添加ScriptManager,运行,没有报错,看来不是系统或配置的问题。对比新建的和报错的项目,发现代码存在以下差别:

//错误
protected global::System.Web.UI.WebControls.ScriptManager ScriptManager1;
//正确
protected global::System.Web.UI.ScriptManager ScriptManager1;

ScriptManager竟然不在WebControls命名空间下,但其他控件在其空间下:

protected global::System.Web.UI.WebControls.RadioButton radiobutton1;
protected global::System.Web.UI.WebControls.CheckBox checkbox1;

把以下两处修改后就能通过编译了:

protected global::System.Web.UI.ScriptManager ScriptManager1;
protected global::System.Web.UI.UpdatePanel UpdatePanel1;

结论:确实不是系统或配置的问题,纯粹是一个VS bug,其他Web控件都设计在System.Web.UI.WebControls命名空间下,唯独ScriptManager在System.Web.UI下,而VS编译器弄错了。

X2009原创,转载需注明出处:http://www.cnblogs.com/x2009/p/8387358.html

转载于:https://www.cnblogs.com/x2009/p/8387358.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值