今天一个 ASP.NET 程序编译时发生错误:
外部组件发生异常。
但是并没有对应的详细信息,和错误的行号等信息,很难排查。
经过一段时间的检查,发现原因出在一个 User Control 后台代码中的引用不知何故写成了:
using System.Windows.Forms;
这样该 UserControl 的页面基类就变成了 System.Windows.Forms.UserControl. 奇怪的是,用 "Build Page" 对该用户控件进行编译时,竟提示成功。而编译整个网站则出错。
上述错误信息中的“外部组件”应该是从引用了该用户控件的页面角度而言的,对他来说这个用户控件就是“外部组件”。