1

我有一个包含 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 代码包。我检查了包站点,发现最新版本依赖于 EF 4.3.1

依赖列表图像

更新:

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

4

2 回答 2

0

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

希望这可以帮助

于 2012-09-20T14:40:08.047 回答
0

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

于 2012-09-21T23:44:11.230 回答