【问题标题】:VS2012 Entity Framework ErrorVS2012 实体框架错误
【发布时间】:2012-09-20 14:32:05
【问题描述】:

我有一个包含 3 个项目的 MCV 4.5 解决方案。场地、测试和模型。站点和模型引用 EF 5.0。我搜索了所有解决方案文件以获取对 4.3.1 的引用,但结果为空。我已删除并重新创建了对 EF 5.0 的所有引用

我有一个运行良好的 HomeControllerTest.cs。 以此作为测试

    [TestMethod]
    public void Index()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
    }

我创建了一个新的 LOBControllerTest.cs 来支持站点项目中的 LOBController.cs。此测试类失败并出现错误“无法使用以下测试加载文件或程序集 'EntityFramework, Version=4.3.1.0'

    [TestMethod]
    public void Index()
    {
        // Arrange
        LOBController controller = new LOBController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        Assert.IsNotNull(result);

    }

如果我将上述测试更改为执行 HomeController,如下所示,它运行得很好。

    [TestMethod]
    public void Index()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        Assert.IsNotNull(result);

    }

这是在全新安装的 Windows Server 2012 上全新安装的 VS2012。

有什么想法吗?

更新,我忘了提到我也在使用 ReSharper 7.1。我想知道这是否有我遗漏的设置。

我发现 RS7 stackoverflow.com/questions/12357696/... 有一个记录在案的错误,所以我禁用了 RS7 测试套件并尝试直接从 VS2012 界面运行它,结果相同。所以它不是与 RS7 隔离的。

更新:

这里有一个链接https://www.dropbox.com/sh/740w2jsp8i1mslg/pWiwnSewHQ,任何想要查看它的人都可以访问这个项目。这没什么特别的,它只是一个模板项目。我们正在工作中开始一个新项目,我是 MVC 和测试驱动开发的新手,所以我试图抢占先机。

2012 年 9 月 21 日更新

我相信我已经找到了。在与将原始 Wholesale 模板解决方案放在一起的开发人员交谈后,我发现 Wholesale.Admin 中的 Repositories 文件夹引用了一个 NUGet 代码包。我检查了package site,发现最新版本依赖于EF 4.3.1

更新:

已确认。从站点下载和升级解决方案后,我不再收到错误消息。我收到另一个错误,但 4.3.1 不再是问题。希望开发者更新他的 NuGet 解决方案,他已经 7 个月没有更新了。

【问题讨论】:

    标签: asp.net-mvc-4 visual-studio-2012 entity-framework-5


    【解决方案1】:

    显然,您的 LOBController 在某处以某种方式引用了 EF 4.3。检查您在包含此控制器的类库中的引用,或者可能仍在 bin 文件夹或 GAC 中的 dll...

    希望对你有帮助

    【讨论】:

    • 我知道你来自哪里,但我已经走上了这条路。从未在此 VM 上安装 4.3。这是全新安装,解决方案中没有对 4.3.1 的引用。
    • 更新,我忘了说我也在使用 ReSharper 7.1。我想知道是否有我缺少的设置。
    【解决方案2】:

    在与将原始 Wholesale 模板解决方案放在一起的开发人员交谈后,我发现 Wholesale.Admin 中的 Repositories 文件夹引用了一个 NUGet 代码包。我检查了包站点,发现最新版本依赖于 EF 4.3.1。我下载了源代码并重新编译引用 EF 5.0 并清除了 4.3.1 错误

    【讨论】:

    • 请使用您问题上的编辑链接添加更多信息。 Post Answer 按钮应仅用于问题的完整答案。
    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多