Подтвердить что ты не робот

Публикация сайта без roslyn

Я пытаюсь создать веб-приложение с помощью Visual Studio 2015 и .NET 4.5.1. Когда я публикую веб-сайт, visual studio создаст папку с именем roslyn.

введите описание изображения здесь

Я знаю, что он использовался для компиляции кода "на лету", но, к сожалению, мой хостинг-провайдер не позволяет мне выполнять компилятор на своем сервере.

Как опубликовать сайт без roslyn, как предыдущая версия Visual Studio?

EDIT: Я получил эту ошибку, пытаясь получить доступ к моему сайту.

введите описание изображения здесь

Кажется, IIS пытается выполнить roslyn\csc.exe, но у моей учетной записи пользователя нет разрешения на это. С предыдущей версией Visual Studio эта ошибка не отображается.

4b9b3361

Ответ 1

Я столкнулся с той же проблемой. Когда вы создаете новый веб-проект, в ваш проект автоматически добавляются два пакета nuget. Если вы их удалите, ваша проблема должна быть решена. Имена пакетов: " Microsoft.CodeDom.Providers.DotNetCompilerPlatform" и " Microsoft.Net.Compilers".

Ответ 2

Я была такая же проблема. Следуйте инструкциям отсюда. В принципе:

  1. Удалить пакет

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. В настройках своего профиля публикации снимите флажок "Разрешить обновление скомпилированного сайта". Вы можете найти это в Настройки> Прекомпиляция во время публикации> Настройка

Ответ 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". Спасибо, Кемаль, но я получаю эту ошибку после того, как делаю; ошибка