【问题标题】:project reference won't compile 'should be reference'项目参考不会编译“应该是参考”
【发布时间】:2014-01-23 13:03:39
【问题描述】:

在我为测试 Web 代码而创建的以下新测试项目中,尝试编译代码时出现以下错误。

不确定这意味着什么,因为我已将项目的引用(包括控制器)添加到测试项目中??

任何想法

非常感谢, 詹姆斯

错误信息

Error   330 The type 'Web.Supporting.BaseControllers.PowerController' is defined in an assembly that is not referenced. You must add a reference to assembly 'Web.Areas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.    C:\Power\Test.Unit.Web.Portal\Controllers\SearchProductControllerTests.cs   39  13  Test.Unit.Web.Portal

更新

尝试将system.web.mvc添加到测试项目中,虽然我看不到,见下图

更新

通过查看现有测试项目找到它。在对话框中看不到它 (???) 但我在这里找到它:C:..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll

【问题讨论】:

  • 确切的错误信息是什么?
  • 您的控制器是否位于 MVC 区域内?
  • mvc其实是一个类库
  • 您引用的程序集是否比您的项目更高的 .NET Framework 版本?
  • 谢谢,因为鼠标悬停在消息上,我实际上并没有编译它。但是当我编译它时,它确实说要包含我拥有的 .areas dll,并且已经取得了一些进展。但我仍然遇到同样的问题。

标签: c# .net


【解决方案1】:

您是否包含了对它所要求的Web.Areas 库的引用?如果不添加。

如果您已经引用了它,那么“目标框架版本”将是问题所在。如果您当前的项目的目标版本低于引用的程序集,则会发生这种情况。例如:如果当前项目针对 .net4.0 而Web.Areas 针对.net4.5,则会出现此错误。

要修复它,您可能需要降级所有其他项目版本或升级当前项目的版本。

【讨论】:

  • 请问我在哪里指定目标版本?在 dll 引用的属性中? (这样做时我看不到选项..)
  • 是的,仅在项目属性中。 This should help
  • 它说我需要添加对 system.web.mvc 的引用 - 如果我单击“添加引用”,我在引用管理器/com 或程序集或解决方案选项卡中的任何地方都看不到它。 .?
  • 是的,如果您的课程使用 MVC,那么您还需要添加它。您可以通过Right click -> Reference -> Add Reference 添加它
  • 它应该在扩展选项卡中,目前您正在检查框架选项卡
【解决方案2】:

为了解决这个问题,我在测试项目中添加了 PowerController dll 和 system.web.mvc 的引用。注意:system.web.mvc 位于“添加引用”对话框的扩展选项卡中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多