Публикация сайта без рослина

Я пытаюсь создать веб-приложение с использованием 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".

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

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

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

По этому вопросу в репозитории 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 в файловой системе.

Обыскав же выданное мне лицо, я просто пришел сюда. Я прочитал приведенный выше ответ, который является правильным.

Я даю ответ, потому что Вот хорошая статья, чтобы объяснить:

  1. Почему код публикации имеет этот исполняемый файл, а также среду разработки?
  2. В чем выгода и как убрать?

Это также очень хорошая статья, об истории этого exe

У меня была такая же проблема в сентябре 2016 года, когда я взял на себя существующую программу ASP.NET. Я обнаружил, что было несколько версий двух пакетов компилятора, упомянутых Kemal, установленных в разных проектах решения.

Итак, во-первых, я обновился, чтобы получить их так же. VS не говорит, что в этом сценарии доступны обновления (или, может быть, я их пропустил?)

Затем мне пришлось перезапустить VS2015, чтобы пакеты правильно очистились.

Другие вопросы по тегам