標籤:config rip box button config檔案 vs編譯 5.5 glob 自動產生
使用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