Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

Пару лет назад я немного разрабатывал AngularJs, и он мне очень понравился, поэтому я решил попытаться перейти на более новую версию. Для меня не имело смысла переходить на Angular 6, учитывая, что Angular 7 отсутствует, но шаблон Visual Studio все еще использует V6.

Я следил за этой статьей (https://www.talkingdotnet.com/create-an-angular-7-app-with-visual-studio-2017/), чтобы обновить шаблон VS по умолчанию до V7, но у меня возникают проблемы при развертывании приложения у моего провайдера веб-хостинга. Если я создам новое приложение Angular V6 с шаблоном, оно будет развернуто и работать нормально. Я могу обновить приложение-шаблон V6 до V7, используя упомянутую выше статью, и оно будет нормально работать в VS локально, но при развертывании выдает следующую ошибку:

ОШИБКА:
Среда разработки не должна быть включена для развернутых приложений. Это может привести к отображению конфиденциальной информации из исключений для конечных пользователей. Для локальной отладки включите среду разработки, задав для переменной среды ASPNETCORE_ENVIRONMENT значение Development и перезапустив приложение.Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

Что я пробовал:

1) Я попытался изменить переменную ASPNETCORE_ENVIRONMENT, которая находится на вкладке "Отладка" в диалоговом окне свойств проекта (с "Разработка" на "Производство"). Я получаю ту же ошибку.Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

2) Я попытался изменить производственное свойство файла environment.ts на true, чтобы оба файла, environment.ts и environment.prod.ts, были истинными, чтобы исключить использование неправильной версии. Это также приводит к той же ошибке. Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

3) Я попытался использовать WinDiff, чтобы показать все различия файлов между папками «ClientApp», сравнивая V6 и V7. Поскольку это единственное, что я изменил, когда оно работает, а когда нет. Единственные различия, которые мне кажутся сомнительными, это: main.ts, angular.json и app.module.ts. Я включил фотографии каждого из этих отличий (красный — V6, желтый — V7). Я понятия не имею, что еще попробовать на этом этапе, но я заметил, что структура пути от V6 к V7 не одинакова и отображается на изображении angular.json, указанном в списке. Я не уверен, может ли это быть проблемой или нет, но опять же, приложение отлично работает на V7 локально в VS, поэтому я сомневаюсь, что это причина, но на самом деле не уверен.

  • main.ts

    Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

  • угловой.json

    Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

  • app.module.ts

    Ошибка развертывания обновления VS2017/Angular 7 (режим разработки)

Любая помощь будет принята с благодарностью.

stackoverflow.com/questions/55572693/… Прочитайте обсуждение, чтобы узнать больше о том, что происходит в web.config.
Lex Li 09.04.2019 15:51

Спасибо за ответ, Лекс... к сожалению, насколько я могу судить, эта ссылка не очень помогает в моей ситуации. В проекте V6 также нет файла web.config, и он работает отлично, поэтому я не ожидаю, что это будет проблемой. Только после удаления папки ClientApp и воссоздания из angular cli она перестает работать. Я пошел дальше и попробовал оба варианта, которые я видел в этой статье, чтобы увидеть, решило ли это мою проблему, но они этого не сделали. Я добавил в проект файл web.config по умолчанию и добавил свойство EnvironmentName, как указал Крис. Ни одно изменение не решило проблему.

user1011627 09.04.2019 18:08

В целях тестирования... Я развернул совершенно новое приложение V6 с пустым файлом web.config и свойством EnvironmentName в публикуемом xml. Приложение работает нормально. Я развернул новое обновленное приложение V7 с обоими изменениями. Это не удается. Я скачал оба файла web.config, и они идентичны.

user1011627 09.04.2019 18:30
Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Поддержка IIS для PHP
Поддержка IIS для PHP
Эта версия PHP требует наличия C++ Redistributable для VS 2019 (как минимум)
2
3
1 150
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец-то у меня это заработало, но я не могу полностью понять, почему.

Обновление V7 (с помощью команды «ng new ClientApp») создаст файл angular.json с outputPath «dist/ClientApp», где исходный шаблон V6 создает это свойство только с «dist». Если я изменю outputPath на «dist» в приложении V7, оно будет развернуто и запущено, как и ожидалось. Итак, это определенно связано с этим параметром в angular.json.

Есть еще одна вещь, которая до сих пор не имеет для меня никакого смысла. Если я полностью удалю весь веб-каталог, опубликованный на сайте, изменю outputPath обратно на «dist/ClientApp», а затем переустановлю, он все равно будет работать нормально. Я сделал это в качестве теста, чтобы убедиться, что это изменение действительно решило проблему, с которой я столкнулся, прежде чем я опубликовал ответ. Я не ожидал, что это сработает, поэтому это определенно сбивает с толку, почему это работает.

Спасибо пользователю 1011627! Вы сэкономили мне кучу времени!

buzzripper 14.05.2019 17:04

Потрясающий! Рад, что это помогло!

user1011627 15.05.2019 16:44

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