【发布时间】:2017-10-25 00:07:57
【问题描述】:
我继承了一个 Visual Studio Web 项目,并且输出路径指定为 objd\amd64\。当我构建时,所有文件(编译后的项目文件以及包,如 MVC)都显示在那里。但是,当我按 F5 运行应用程序时,出现以下异常:
Could not load file or assembly 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
异常继续列出系统正在查找该(和其他)文件的位置。它首先看到的是bin,这是正常的输出文件夹。为什么 .NET 没有在 指定的 输出文件夹中查找,我怎样才能让它看起来在那里?
澄清:需要明确的是,此异常并非 MVC 独有。如果我手动创建 bin 文件夹并将 MVC DLL 复制到那里,那么我会克服这个异常,但会为它要查找的下一个文件获取另一个异常。如果我将所有文件复制到 bin,则应用程序运行良好。运行时只是没有在指定的输出文件夹中查找文件。
更新:如果我将输出路径更改为bin,则不会输出任何文件。我可以看到没有定义的构建后事件。
更新:这是我的构建设置。在我构建项目时甚至没有创建bin 文件夹(我试图使用bin 进行测试),更不用说将文件复制到其中了。当我按下 F5 时,Debug 绝对是选择的构建类型。
【问题讨论】:
-
所以只是为了澄清。它实际上是在将 MVC 程序集复制到指定的目的地,但它没有在那里寻找它?我知道这是随机的,但如果是这样的话,你能去那个程序集检查它的版本以确保它与 5.2.3.0 匹配吗?
-
没错。通常进入 bin 文件夹的所有内容都将进入指定的输出文件夹。如果我创建一个 bin 文件夹并在那里手动复制所有这些文件,它会在那里找到它们并运行。所以,它绝对是一切的正确版本。它只是在寻找输出所有文件的地方以外的地方。
-
在您的参考文献列表中,该参考文献旁边是否有一个黄色小图标?您可能需要通过手动定位来修复参考?我不记得这是否是 NuGet 参考。如果是,您可以重新安装它,这也应该修复它。
-
如果我手动将 MVC DLL 复制到 bin 文件夹,那么我会克服该错误并获得另一个错误。每个文件都会发生这种情况。如果我将所有文件复制到 bin,则项目运行良好。因此,文件都在那里并且是正确的。运行时只是在寻找错误的地方。
-
@KSib 否。所有参考资料都很好。并且文件都输出正常。运行时只是在寻找错误的地方。
标签: c# .net asp.net-mvc visual-studio-2015