【问题标题】:Compiler Error Message: CS0246 in ASP.NET MVC App编译器错误消息:ASP.NET MVC 应用程序中的 CS0246
【发布时间】:2009-11-09 09:50:07
【问题描述】:

我有一个新的解决方案,即 ASP.NET MVC 2.0 应用程序。我在解决方案中添加了一个项目,它是一个控制台应用程序。控制台命名空间是 foo,它有一个名为 FooDataRepository 的数据存储库,它是一个公共类。我在 foo 命名空间中还有一个名为 FooLinkList 的公共类,它也是公共的。

在 ASP.NET 应用程序的 HomeController 中,我添加了“使用 Foo”,一切都可以正常编译。

是我的 Index.aspx 有问题。当我运行应用程序时,我收到以下错误:

说明:在编译服务此请求所需的资源时出错。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:CS0246:找不到类型或命名空间名称“TweetLinkTimer”(您是否缺少 using 指令或程序集引用?)

Line 1:  <%@ Import Namespace="Foo" %>
Line 2:  <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<FooLinkList>>" %>

我通过 Visual Studio 添加了对 Foo 的引用,并在 .CS 文件上添加了“使用”指令。我不确定我还需要在这里做什么。 Foo.exe 位于我的 ASP.NET MVC 应用程序的 bin 目录中。

我这样做的原因是因为我不想复制我的数据存储库,它充当 MVC 应用程序的模型,并且该存储库已经为控制台应用程序创建。有什么想法吗?

【问题讨论】:

  • 错误提到了 TweetLinkTimer。与示例代码中的 FooLinkList 相同吗?

标签: c# asp.net-mvc visual-studio-2008


【解决方案1】:

我觉得这不是“正确的”,但我可以通过混合异常消息所说的内容并向视图添加装配指令来使其工作。

<%@ Assembly Name="Foo" %>
<%@ Import Namespace="Foo" %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<FooLinkList>>" %>

【讨论】:

  • 我显然不需要 Import 指令和 Assembly 指令。
【解决方案2】:

我可以重现该问题,并且正在查看详细信息,但我认为该问题源于尝试将控制台应用程序作为库及其生成的输出进行引用。直觉上你会认为它会起作用。

解决方案 1:您可以通过创建共享的“类库”应用程序类型,将 FooDataRepository 和 FooLinkedList 存储在其中,并让 MVC 2 和控制台应用程序引用该项目来解决此问题。

【讨论】:

  • 我认为解决方案 1 是唯一可行的。解决方案 2 要求我的控制台应用程序是 DLL,但事实并非如此。这是一个 EXE,因为我需要它在后台运行。
  • 我删除了解决方案 2,因为它只是我造成了误报。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多