На этом есть куча связанных вопросов, хотя большинство ответов определяют Roslyn и/или предоставляют "исправление" какой-либо проблемы (exe
, с хостинг-провайдерами и т.д.)
То, что я не могу отслеживать, - это "почему" и "зачем" (возможно, только в контексте ASP.Net MVC/Web API) в /bin/roslyn
.
Я столкнулся с подобными проблемами (хостинг - .exe
ограничения, поддержка 4.6
и т.д.), и мое "исправление" состояло в том, чтобы "просто развернуть до Azure" (конечно, все работает без сбоев). Но на самом деле это не отвечает:
-
зачем они нужны? - означает ли это, что они используются для
runtime
компиляции(мой мозг указывает на это, но это полная догадка/мой, возможно, неправильный grok), это сообщение SO показывает- если не исправлено, это "это" (более подробно). - кажется, что "удаление пакета" - это "исправление" (на основе некоторых прошлых ответов),
, но если да, то (re) запрашивает вопросзабастовкa >
Я думаю, что понимание этого поможет. Я не могу быть единственным, у кого будет бровь, видя, что нужно .exe
"....
Update
Идет показать, что "скрытые драгоценные камни" существуют:) Я читал это снова и снова... ведь он был там для через некоторое время - но не поток комментариев. БОЛЬШАЯ ошибка - он смотрел на меня все это время (или, по крайней мере, с этого обмена):
Дмитрий Дзыгин 2 июня 2015 г. 12:53
Я пробовал последнюю версию пакета NuGet, но, похоже, есть разница в том, как компилятор загружается/выполняется.
В v0.2.0.0 компилятор Roslyn будет загружен в память, что значительно улучшит производительность для не предварительно скомпилированных веб-сайтов с несколько файлов *.as * x/*. cshtml. Однако в новой версии новый
/bin/roslyn/csc.exe
файл, который выполняется один раз для каждого файла, полностью удалив упомянутую выше функцию оптимизации.....
Золото:
XMao 2 июня 2015 1:22 вечера
@Dmitry Задача
csc.exe
в/bin/roslyn
заключается в вызовеVBCSCompiler.exe
, который находится в той же папке.VBCSCompiler.exe
это процесс, который выполняет фактическую работу компиляции. Если VBCSCompiler уже запущен. Csc.exe будет повторно использовать его, и мы будем все еще получают указанное улучшение производительности.
Hth...
Обновление: 10/2017
Кажется, это актуально после всего этого времени, чтобы продолжить обновление.
Ниже представлен ответ @Donny V. Полностью компилируя приложение, включая все Views
(.cshtml
/.vbhtml
), вам не понадобится exe
в вашем приложении.
Это верно, даже если Visual Studio (по сей день VS 2017, смущающе) все равно создаст /bin/roslyn
и это содержимое в процессе Publish
, , даже если установлен "полный компилятор" .
Вы можете протестировать это, исключив папку /bin/roslyn
и ее содержимое при нажатии вашего приложения на хостинг-провайдера.
Предостережение:
Как уже упоминалось, полная компиляция вашего приложения означает, что вам придется перекомпилировать его даже для изменений уровня View
.