在我为测试 Web 代码而创建的以下新测试项目中,我在尝试编译代码时遇到以下错误。
不确定这意味着什么,因为我已经将对项目(包括 Controller )的引用添加到测试项目中??
任何想法
非常感谢, 詹姆斯
错误信息
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
最佳答案
您是否包括了对它要求的 Web.Areas
库的引用?如果不添加它。
如果您已经引用了它,那么“目标框架版本”就是问题所在。如果您当前项目的目标版本低于引用的程序集,则会发生这种情况。例如:如果当前项目以 .net4.0 为目标,而 Web.Areas
以 .net4.5 为目标,则会出现此错误。
要修复它,您可能需要降级所有其他项目的版本或升级当前项目的版本。
关于c# - 项目引用不会编译 'should be reference',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309018/