1. 程式人生 > >VS ASP.NET C#編譯ScriptManager bug

VS ASP.NET C#編譯ScriptManager bug

文件 clas 感覺 controls 報錯 radi control 項目 style

使用VS(使用的是當前企業最新版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

VS ASP.NET C#編譯ScriptManager bug