如何在本地加速调试 C# Azure Function?是

How to speed up debugging C# Azure Function locally? Is

我已经按照此处所述在本地创建了一个 c# Azure 函数:https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code

这是使用 VS Code 和 Omnisharp。

当按 F5 调试一个功能时,它需要大约 15 秒来做各种事情,然后我可以 运行 这个功能。

有什么方法可以更改代码并重新加载它,而不必再次启动整个 omnisharp?

我问是因为这似乎是可能的:

  1. 在 Azure 门户中,保存和 运行 调用函数不到 1 秒。
  2. 当运行在本地调用函数时,可以进行调试,设置断点等
  3. 有一个名为 "Restart" 的按钮,但它似乎不起作用 任何东西

本地开发目前不支持热重载,但你可以做到。

本地开发人员和门户之间的最大区别之一是您在本地使用预编译的 C#(.cs 文件),而门户使用 C# 脚本(.csx 文件)。这就是语法有时有点不同的原因(即 #r "Newtonsoft.Json" 引入外部程序集)。这样做的缺点是启动一个函数比较慢,因为它每次都必须编译代码。这就是为什么使用本地开发的预编译库在长期 运行.

中使用成本更低的原因

脚本文件在调用脚本时编译,而不是在启动前编译。预编译函数很难进行热重载。当我测试它时,在调试会话 运行ning 时编辑文件时确实会出现更改。您可能会考虑在开发期间执行此操作,然后在部署之前将代码移植到 class 库以利用更快的启动时间。您可以在此处阅读有关 C# 脚本的更多信息:https://docs.microsoft.com/en-us/archive/blogs/cdndevs/adding-c-scripting-to-your-development-arsenal-part-1

您可以在首选项中更改 Functions 项目创建的语言。更改此设置后,它将一直保留,直到您更改或删除首选项:https://docs.microsoft.com/en-us/azure/azure-functions/functions-develop-vs-code?tabs=csharp#c-script-projects

请记住,您可以将预编译函数与 C# 脚本函数混合使用,因此您需要创建一个单独的函数应用程序来使用开发脚本和 class要部署的库。