Как ускорить отладку C# Azure Функция локально? Является - PullRequest
1 голос
/ 17 января 2020

Я создал функцию c# Azure локально, как описано здесь: https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code

Это использует VS Code и Omnisharp.

Когда нажатие клавиши F5 для отладки функции требует около 15 секунд для выполнения всех видов операций, а затем я могу запустить функцию.

Есть ли способ затем внести изменения в код и сделать его повторно загружается вместо того, чтобы снова запускать весь омнишарп?

Я спрашиваю, потому что это представляется возможным:

  1. На портале Azure, где сохраняются и запуск функции занимает менее 1 секунды.
  2. При локальном запуске функции ее можно отладить, установить точки останова и т. д. c.
  3. Есть кнопка «Перезапуск», но она, похоже, ничего не делает

enter image description here

1 Ответ

2 голосов
/ 22 января 2020

Горячая перезагрузка в настоящее время не поддерживается в локальной разработке, но вы можете сделать это.

Одно из самых больших различий между локальной версией dev и порталом заключается в том, что локально вы используете предварительно скомпилированный C# (.cs файлы), тогда как портал использует C# скрипты (файлы .csx). Вот почему синтаксис иногда немного отличается (например, #r "Newtonsoft. Json" для ввода внешних сборок). Недостатком этого является то, что запуск функции происходит медленнее, поскольку он должен каждый раз компилировать код. Вот почему использование предварительно скомпилированной библиотеки дешевле в долгосрочной перспективе.

Файлы сценариев компилируются при вызове сценария, а не перед запуском. С предварительно скомпилированными функциями было бы очень сложно выполнить горячую перезагрузку. Когда я проверял это, изменения действительно появлялись при редактировании файла во время сеанса отладки. Вы можете рассмотреть возможность сделать это во время разработки, а затем перенести код в библиотеку классов перед развертыванием, чтобы воспользоваться преимуществами более быстрого времени запуска. Подробнее о сценариях C# можно прочитать здесь: https://docs.microsoft.com/en-us/archive/blogs/cdndevs/adding-c-scripting-to-your-development-arsenal-part-1

Вы можете изменить язык, который создают проекты функций в настройках. Как только вы измените этот параметр, он будет придерживаться до тех пор, пока вы не измените или не удалите предпочтение: https://docs.microsoft.com/en-us/azure/azure-functions/functions-develop-vs-code?tabs=csharp#c -script-projects

Имейте в виду, что вы можете не смешивать предварительно скомпилированные функции с C# функциями сценариев, поэтому вам потребуется создать отдельное приложение для функций, которое будет использовать сценарии для развертывания dev и библиотек классов.

...