2016-02-22 4 views
0

Недавно я изменил путь вывода некоторых проектов в нашем решении веб-сайта MVC, чтобы стандартизировать их. Например, основные проекты изменились с bin\ на bin\x64\Debug\ для конфигурации Debug. Я изменил это с помощью доступа к графическому интерфейсу, щелкнув правой кнопкой мыши на проекте и выбрав свойства.После изменения пути вывода проекта MVC сборки не найдены

я могу восстановить все без ошибок, но когда я запустить веб-приложение, я получаю:

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 все еще смотрят в папку с бипом? Я уже пытался удалить все временные файлы в user/appdata/local, перестроить все в решении и перезапустить визуальную студию. Я также попытался удалить все из папки .vs для решения и удалить файл csproj.user для проекта.

DLL-файлы находятся в папке bin/x64/Debug в файловой системе, как и ожидалось из настройки выходного пути.

+0

Почему вы ожидаете, что VS найдет сборки в папке 'bin \ x64 \ Debug \' во время выполнения? Он не ищет их в этом месте. – Maarten

+0

С изменением свойства выходного пути, где они заканчиваются, когда происходит сборка. Согласуется ли это с тем, что сборка отладки должна размещать их непосредственно в папке/bin? – jackmott

+0

Вы вводите в заблуждение две вещи, а именно местоположение, где VS хранит результат процесса компиляции, и местоположение, где VS ищет необходимые сборки во время выполнения. Они не одинаковы. – Maarten

ответ

1

Похоже, что asp.net/IIS все еще находятся в папке с битами?

Конечно, это место, где ASP.NET ищет сборки. Поэтому убедитесь, что они находятся в этой папке, если вы хотите, чтобы ваше веб-приложение работало. Вы не можете ожидать, что ASP.NET будет выглядеть в некоторых нестандартных местах, например, bin\x64\Debug. Если вам нужно, чтобы он просматривал некоторые пользовательские местоположения для сборок, вам может потребоваться написать пользовательский загрузчик сборок.

+0

Таким образом, выходной путь для сборщиков Debug должен быть просто bin /? – jackmott

+0

@jackmott Для веб-приложений, да, это должно быть. – Maarten

+0

Да, это должен быть выход для приложения ASP.NET. –