【发布时间】:2016-02-22 14:42:06
【问题描述】:
我最近更改了我们 MVC 网站解决方案中一些项目的输出路径,以使其标准化。例如,调试配置的主要项目从bin\ 更改为bin\x64\Debug\。我通过 GUI 访问更改了此设置,方法是右键单击项目并选择属性。
我可以毫无错误地重建所有内容,但是当我启动网络应用程序时,我得到:
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.
...
=== Pre-bind state information ===
LOG: DisplayName = System.Web.Mvc, Version=4.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///C:/bookshelf/Bookshelf/
LOG: Initial PrivatePath = C:\bookshelf\Bookshelf\bin
Calling assembly : (Unknown).
===
看起来好像 asp.net / IIS 仍在 bin 文件夹中查找? 我已经尝试删除 user/appdata/local 中的所有临时文件,在解决方案上重新构建所有文件,然后重新启动 Visual Studio。我还尝试从解决方案的 .vs 文件夹中删除所有内容,并删除项目的 csproj.user 文件。
这些 dll 位于文件系统上的 bin/x64/Debug 文件夹中,正如输出路径设置所预期的那样。
【问题讨论】:
-
你为什么期望 VS 在运行时在
bin\x64\Debug\文件夹中找到程序集?它不是在那个位置寻找他们。 -
由于更改了输出路径属性,这就是它们在构建发生时结束的地方。调试版本是否应该将它们直接放在 /bin 文件夹中?
-
您混淆了两件事,即VS存储编译过程结果的位置,以及VS在运行时搜索必要程序集的位置。它们不一样。
标签: c# asp.net asp.net-mvc asp.net-mvc-4