Публикация сайта без рослина
Я пытаюсь создать веб-приложение с использованием Visual Studio 2015 и.NET 4.5.1. Когда я публикую сайт, Visual Studio создает папку с именем roslyn
,
Я знаю, что он используется для компиляции кода на лету, но, к сожалению, мой хостинг-провайдер не позволяет мне запускать компилятор на их сервере.
Как опубликовать сайт без roslyn
как и предыдущая версия Visual Studio?
РЕДАКТИРОВАТЬ: я получил эту ошибку при попытке получить доступ к моему сайту.
Кажется, IIS пытается выполнить roslyn\csc.exe
но моя учетная запись не имеет разрешения на это. В предыдущей версии Visual Studio эта ошибка не отображается.
6 ответов
Я только что столкнулся с той же проблемой. Когда вы создаете новый веб-проект, в ваш проект автоматически добавляются два пакета nuget. Если вы удалите их, ваша проблема должна быть решена. Имена пакетов: "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" и "Microsoft.Net.Compilers".
Я была такая же проблема. Следуйте инструкциям отсюда. В принципе:
Удалить пакет
Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
В настройках вашего профиля публикации снимите флажок "Разрешить обновление скомпилированного сайта". Вы можете найти это в Настройки> Прекомпиляция во время публикации> Настройка
По этому вопросу в репозитории Roslyn есть открытая ошибка.
В моем случае все, что мне нужно было сделать, это понизить DLL Microsoft.CodeDom.Providers.DotNetCompilerPlatform
от версии 1.0.6
в 1.0.5
,
После бесчисленных усилий.... и по данным этого сайта. Я считаю, что вы можете использовать /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
в MSBuild для преобразования web.config это также включает компилятор roslyn в сборку. Вывод такой же, как и при публикации в Visual Studio в файловой системе.
Обыскав же выданное мне лицо, я просто пришел сюда. Я прочитал приведенный выше ответ, который является правильным.
Я даю ответ, потому что Вот хорошая статья, чтобы объяснить:
- Почему код публикации имеет этот исполняемый файл, а также среду разработки?
- В чем выгода и как убрать?
У меня была такая же проблема в сентябре 2016 года, когда я взял на себя существующую программу ASP.NET. Я обнаружил, что было несколько версий двух пакетов компилятора, упомянутых Kemal, установленных в разных проектах решения.
Итак, во-первых, я обновился, чтобы получить их так же. VS не говорит, что в этом сценарии доступны обновления (или, может быть, я их пропустил?)
Затем мне пришлось перезапустить VS2015, чтобы пакеты правильно очистились.