编译器错误信息: CS1595: 已在多处定义“ ”;一种可能出现的情况

先说一下网上经常能搜到的情况。
http://liubiqu.cnblogs.com/archive/2004/11/30/71025.aspx 这个说了两种情况,方法 1:在 C# 编译器定义中包括 /nostdlib 选项;方法 2:为 ASPNET 帐户授予列出权限。可以参见一下。
还有就是说把命名空间改掉, http://www.cnblogs.com/zgqys1980/archive/2006/08/16/478414.html
但对于我的情况都不适用。

我的情况是运行时ieWebControl出现多处定义,并不是编译时。
开始想不通,这个多处定义是怎么来的,做了一些尝试,如:重装这个控件,删除ASP.NET的临时文件,重启iis,都不管用。
最后还是着眼于ASP.NET的查找dll的方式,大家都知道ASP.NET运行时的dll都是在临时文件夹(%Windir%\microsoft.net\framework\{ version}),而这里面的dll都是从GAC和Web应用程序根目录下Copy过来的。这样就想到是不是这两个地方都有这个dll呢,证实是这样的,而且版本还不一样,这就造成了运行时的多处定义。ps:Web程序和WinForm的加载dll的方式不一样,WinForm肯定是首先找GAC,再找运行目录或根据配置文件找,所以WinForm程序运行时不会出现这样的问题。结果就是删掉Web应用程序根目录下的这个dll,就正确的,也不知道哪个鸟人拷进去的。

你可能感兴趣的:(编译器错误信息: CS1595: 已在多处定义“ ”;一种可能出现的情况)