Используя VS2015 и MVC 5.2.3, я пытаюсь сместить области функциональности, включая представления Razor, в библиотеки классов, чтобы я мог разделить его между несколькими проектами.
Я использую средство MvcBuildViews, как обычно описанои настройте его следующим образом, так как он часто ловит опечатки перед публикацией:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
</Target>
Это прекрасно работает с основным проектом, но у меня возникают проблемы с его работой с библиотеками. Вместо этого я получаюследующая ошибка компилятора:
web.config (41): ошибка ASPCONFIG: не удалось загрузить файл или сборку 'System.Web.Mvc, версия = 5.2.3.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35'или одна из его зависимостей.Система не может найти указанный файл.
Ссылочный раздел web.config выглядит следующим образом:
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.6"/>
</system.web>
Все настройки выглядят очень похоже на основной проект, и эксперименты былибезрезультатный и продолжает приводить меня к той же самой основной ошибке выше.Все обязательные ссылки установлены и совпадают с основными проектами.
Я понимаю, что тег AspNetCompiler в csproj является оболочкой для процесса aspnet_compiler.exe , но я не вижуЧем отличается среда компиляции в библиотеке классов от основного проекта.
Возможно ли передать определенную папку поиска сборки компилятору в этом теге?- поскольку сборка System.Web.Mvc.dll, безусловно, существует, она находится в папке bin \ Release проекта библиотеки классов.Или есть лучший подход?
Подробная информация о внутренних процессах aspnet_compiler.exe недостаточна и не имеет подробного режима диагностики.
Какя должен продолжить это?