我正在使用VS2012 Update 3,并且有一个包含三个基本项目的解决方案,包括类库,conosole应用程序和IIS网站。
该网站引用了图书馆项目。库编译得很好并自动将最新的dll放在网站的bin文件夹中。
本周之前这一切都没有问题。
我的网页可以导入和使用类库。我得到正确的智能感知,页面浏览或最终浏览显示他们正在使用该库。这个星期有时我得到一个类型没有定义错误的浏览但等待它后工作。但编译现在总是失败。
有时编译时错误显示在错误列表中然后最终会消失,但在构建错误时始终显示在输出选项卡中: SomeCodeBehindFile.aspx.vb(#,#)错误BC30002:未定义类型'SomeTypeInMyLibrary'。
Error BC30002 - Type XXX is not defined没有帮助。我尝试使用完全限定的变量类型而不是使用导入。我尝试将应用程序池中的标识更改为具有整个站点读取权限的网络服务。
我也尝试过Visual Studio的构建>清理解决方案并从Windows框架临时ASP.NET文件中删除所有文件。
我唯一可能做的就是激怒VS,我会手动重命名我的一个asp文件及其类名/页面指令属性,但我之前没有问题。我有偏执并删除该文件并重新添加它。我还有3页抱怨现在没有定义类型。
答案 0 :(得分:1)
真的很困惑了一段时间。使用库永久拒绝浏览的页面也会变得更糟。虽然如果我复制库和错误页面在另一个Web应用程序,它会工作!不知道是什么离开轨道我开始了一个新的VB网站,并恢复了业务一段时间,但后来又重新开始。我没有联系我所做的事情,这实际上导致我的第二个网站的悲伤。我第三次使用C#开始了一个新网站。再一次好起来,直到那一刻我一直在射击自己。值得庆幸的是,C#编译器给出了一个更有用的错误消息:“using namespace命令只能应用于命名空间;'StaffPlusLibrary'是一种类型而不是命名空间”。 Grrr问题是我不断向与类库相关的站点添加一个帮助页面,并调用了StaffPlusLibrary.aspx页面。我注意不要将页面命名为与现有类相同,但它没有在我的脑海中注册我即将使用与我的库的根命名空间相同的名称创建页面。因此,页面使用与命名空间相同的名称创建了一个类。我引入的歧义在C#之前并不明显。