Ошибка развертывания обновления VS2017 / Angular 7 (режим разработки) - PullRequest
2 голосов
/ 09 апреля 2019

Пару лет назад я занимался разработкой в ​​AngularJ, и мне это очень понравилось, поэтому я решил начать пытаться перейти на более новую версию. Мне не было смысла переходить на 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 и перезапустите приложение. enter image description here

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

1) Я попытался изменить переменную ASPNETCORE_ENVIRONMENT, которая находится на вкладке «Отладка» в диалоговом окне свойств проекта (от «Разработка» до «Производство»). Я получаю ту же ошибку. enter image description here

2) Я попытался изменить производственное свойство файла environment.ts на true, чтобы оба, environment.ts и environment.prod.ts были оба true, чтобы исключить его, используя неправильную версию. Это также приводит к той же ошибке.
enter image description here

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

  • main.ts

    enter image description here

  • angular.json

    enter image description hereenter image description here

  • app.module.ts

    enter image description here

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

1 Ответ

3 голосов
/ 10 апреля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...