Я использовал инструмент публикации веб-публикаций для публикации моего приложения MVC 5 в прошлом без предварительной компиляции в прошлом. В рамках моих усилий по сокращению начального времени загрузки для каждой страницы я изменил настройки публикации, как показано ниже, чтобы предварительно скомпилировать приложение во время процесса публикации. Внезапно невероятно надежная публикация, к которой я привыкла, стала кошмаром.ASP.NET MVC 5 публикует прекомпиляционные проблемы
Мое понимание «Объединить все выходы в один узел» будет означать, что все мои
.cshtml
страницы будут компилируются вместе вDashboard.Precompiled.dll
, который получил бы развернут на IIS. Это было не так - когда я могу заставить публикацию работать, она создает файл.complied
для каждого файла.cshtml
в моем проекте и не выполняет слияния.Основная проблема сейчас в том, что
.compiled
генерируются только некоторое время. Когда я смотрю в каталогеobj\Debug\AspnetCompileMerge\TempBuildDir\bin
, нет.compiled
файлов, а неDashboard.Precompiled.dll
.
Я попытался перезапустить Visual Studio, очистка раствора и восстановление, предварительный просмотр vs. не предпросмотра изменения перед публикацией, создавая совершенно новый опубликовать профиль, и возился с передовыми настройками прекомпиляции снова и снова. Обычно через 30 минут после этого я могу получить файлы .precompiled
для генерации и публикации, однако я не смог определить, что заставило его работать правильно в это время. В следующий раз, когда я отправлю и опубликую без изменения настроек, он перестанет работать снова. Проблема возникает при использовании VS2015 или VS2017RC.
Может ли кто-нибудь помочь мне указать мне в правильном направлении? Я уже много времени погружаюсь в это, и просто чувствую, что сейчас собираюсь в кругах.
Спасибо!
EDIT Я присмотрелся на выходе сборки и обнаружил, что вызов aspnet_compiler.exe был выполнен со следующими параметрами:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v/-p C:\Users\steve\Source\Dashboard\master\src\Agility.Web\obj\Staging\AspnetCompileMerge\Source -d C:\Users\steve\Source\Dashboard\master\src\Agility.Web\obj\Staging\AspnetCompileMerge\TempBuildDir
Когда я запускаю эту команду непосредственно из команды line, no .compiled
файлы создаются в TempBuildDir\bin
.
имеет изменение конфигурации решения в режиме выпуска? – MMK
Я пробовал это раньше, хотя в настоящее время я публикую тестовую среду, поэтому я использую конфигурацию отладки. Будет ли изменение режима выпуска каким-то образом повлиять на выход компилятора aspnet? – ChandlerPelhams
Опубликован ли ваш web.config? – MMK