0

我正在使用 VS2012 Update 3 并且有一个包含三个 Visual Basic 项目的解决方案,一个类库、一个控制台应用程序和一个 IIS 网站。

该网站有对图书馆项目的参考。该库编译良好,并自动将最新的 dll 放在网站的 bin 文件夹中。

在本周之前,这一切都没有问题。

我的网页能够导入和使用类库。我得到了正确的智能感知,页面浏览或最终浏览显示他们正在使用该库。本周有时我会在浏览时遇到类型未定义的错误,但在等待后它可以工作。但是现在编译总是失败。

编译时,有时错误列表中显示的错误最终会消失,但在构建时,错误总是在输出选项卡中显示为: SomeCodeBehindFile.aspx.vb(#,#) 错误 BC30002:未定义类型“SomeTypeInMyLibrary”。

错误 BC30002 - 未定义类型 XXX没有帮助。我尝试使用完全限定的变量类型而不是使用导入。我尝试将应用程序池上的身份更改为对整个站点具有读取权限的网络服务。

我还尝试了 Visual Studio 的 build > Clean Solution 并从 windows 的框架临时 ASP.NET 文件中删除所有文件。

我唯一可能激怒 VS 的做法是手动重命名我的一个 asp 文件及其类名/页面指令属性,但我之前已经这样做了,没有问题。我变得偏执并删除了该文件并重新添加了它。我也有 3 页抱怨现在没有定义类型。

4

1 回答 1

1

真的迷茫了一阵子。使用库的页面永久拒绝浏览,情况也变得更糟。虽然如果我在另一个网络应用程序中复制库和错误页面,它会起作用!不知道发生了什么异常,我创建了一个新的 VB 网站并恢复了一段时间,但后来又重新开始了。我没有将我所做的事情联系起来,这实际上导致了我的第二个站点的悲痛。这是我第三次使用 C# 创建一个新的网站。再次变得很棒,直到那时我一直在拍摄自己。值得庆幸的是,C# 编译器给出了更有用的错误消息:“使用命名空间指令只能应用于命名空间;'StaffPlusLibrary' 是一种类型而不是命名空间”。问题是我一直在向与类库相关的站点添加一个帮助页面,并调用页面 StaffPlusLibrary.aspx。我注意不要将页面命名为与现有类相同的名称,但它并没有在我的脑海中注册我正要使用与我的库的根命名空间相同的名称创建一个页面。因此,该页面使用与命名空间相同的名称创建了一个类。我引入的歧义在 C# 之前并不明显。

于 2013-11-15T15:22:00.013 回答