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