Я совершенно озадачен этим. Идеи, которые я нашел через переполнение стека Google, не работают для меня, и я понятия не имею, почему.
Недавно мы обновили проект до Visual Studio 2012 и MVC 4 с .NET 4.5, и теперь он не публикуется должным образом.
У нас есть еще одна ветка, в которой просто публикуется проект в Visual Studio 2012 без обновления до MVC4 или .NET4.5, и это, кажется, работает, поэтому я предполагаю, что это не проблема Visual Studio. Просто что-то с тем, как MVC 4 настроен в нашем проекте. MVC 3 был добавлен путем ссылки на библиотеки DLL непосредственно из папки lib, которую мы создали в системе управления версиями (но вне каких-либо проектов). MVC 4 добавляется через NuGet.
Проблема в том, что System.Web.Helpers (среди прочего) не отображаются в каталоге bin опубликованного приложения. Это означает, что когда он будет помещен на тестовый сервер, он не будет работать, так как DLL отсутствует.
- Я установил для Copy Local значение TRUE (на самом деле это уже было, но я отключил его и снова включил). Я также где-то читал, что если файл существует в GAC, не имеет значения, какой этот параметр, он не будет копироваться. Однако я проверил, и его нет в GAC.
- Я убедился, что ссылка в приложении MVC указывает на версию файла в папке пакетов NuGet. (Изначально этого не было, но я вручную отредактировал файл csproj, чтобы сделать это, поскольку удаление и чтение пакета NuGet не помогло)
- Я добавил событие после сборки для копирования соответствующих файлов (что не влияет на публикацию, хотя они находятся в каталоге bin проекта)
- Я попытался установить папку
_bin_deployableAssemblies
в соответствии с блог Фила Хаака, но кажется, что это не работает в Visual Studio 2012. - Я попытался изменить файл csproj (который является просто файлом MSBuild), чтобы скопировать для меня соответствующие файлы, согласно этому ответу SO. Но по какой-то причине это тоже не хочет работать.
У меня закончились вещи, которые я могу попробовать. Что ж, я всегда могу скопировать файл вручную, как предлагалось в некоторых ответах SO, но это противоречит цели.
Любые идеи?
ОБНОВЛЕНИЕ
Добавлено больше вещей в пунктах выше для вещей, которые я пробовал, но которые не работают для меня.