【发布时间】:2013-06-17 12:26:15
【问题描述】:
我有一个与这个问题非常相似的问题: ASP.NET 3.5 Web Site stopped importing System namespace by default
我在 VB.NET 中有一个 ASP.NET 3.5 网站(不是应用程序)项目,它可以很好地编译 Visual Studio 2008。当我在 Visual Studio 2012(或 2010)中打开项目时,我遇到了一些非常奇怪的错误看起来好像缺少 System 和 System.Data 命名空间。在大多数情况下,所有这些错误都发生在 App_Code 文件夹中。在某些情况下,我可以在类中添加一个 Imports System 并修复它。我希望这个网站能在我在 VS 2012 中打开后立即编译。
这是我遇到的错误的示例:
-
CommandType未声明。由于其保护级别,它可能无法访问。 -
DateTime未声明。由于其保护级别,它可能无法访问。 -
HttpContext未声明。它可能无法访问,因为它 保护级别。
我相信 VB.NET 确实做了一些隐式导入,但似乎我错过了它们。
编辑:该站点在 IIS 中运行良好,不会产生任何编译错误。
我的 web.config 文件的编译标签如下:
<compilation defaultLanguage="vb" debug="true" batch="false">
<assemblies>
<add assembly="System.Runtime.Serialization.Formatters.Soap, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<buildProviders>
<add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"/>
</buildProviders>
</compilation>
我尝试添加 System 和 System.Data 但没有帮助。它应该从 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG 中的 web.config 文件中的默认程序集中提取。正如我之前所说,同样的解决方案(即使它是一个网站项目)在 VS 2008 中构建。
编辑:
我已将其缩小到我的 BIN 文件夹中的几个 DLL,每个 DLL 都会导致此错误(如果我将其中一个添加回来,错误会再次出现)。麻烦的 DLL 之一是 Recaptcha.dll。这个 DLL 没有什么特别之处,它在 VS2008 中运行良好,在 IIS 中也能正常加载。
【问题讨论】:
-
VS2012 起初为我的 VS2010 MVC 项目工作,然后完全搞砸了我的一堆文件。我用谷歌搜索了它,当时有一些错误尚未修复。我不建议使用它。
-
将您的 app_code 文件夹重命名为其他名称。 VS 2010 和 VS2012 不再喜欢在该文件夹中包含用户代码。
-
我在 2010 年对 App_Code 没有任何问题,但那是一个网站项目。我只是在尝试升级到 Web 应用程序项目时收到您提到的错误。
-
这是一个网站项目,而不是一个 Web 应用程序项目。我无法将文件移到 App_Code 之外,因为它们不会编译。我有另一个网站项目,我升级到 Visual Studio 2012(仍然是 .NET 3.5)并且运行良好。然而那是 C#。我希望这个项目保留为网站项目。
-
不使用网站“项目”的另一个原因
标签: asp.net vb.net visual-studio-2012 asp.net-3.5