У меня возникли проблемы с отладкой функции Azure в Visual Studio 2022.
Я создал функцию, используя следующую командную строку
func init queue-events --worker-runtime dotnet-isolated --target-framework net8.0
Затем я добавил HttpTrigger, используя эту команду
func new --template "Http Trigger" --name MyHttpTrigger
Я проверил эту функцию, чтобы посмотреть, запустится ли она, и она работает, используя func start
Теперь я хочу отладить свой проект функции в Visual Studio 2022, но как только я его запускаю, я сталкиваюсь с этой ошибкой. «Нет доступной среды выполнения функции, соответствующей версиям, указанным в проекте». Не знаю, что делать сейчас. Функция запускается из командной строки, но не в Visual Studio 2022.
Я даже обновил инструменты/шаблоны функций Visual Studio Azure.
Для справки
dotnet --list-sdks
3.1.426 [C:\Program Files\dotnet\sdk]
5.0.214 [C:\Program Files\dotnet\sdk]
5.0.416 [C:\Program Files\dotnet\sdk]
7.0.409 [C:\Program Files\dotnet\sdk]
8.0.105 [C:\Program Files\dotnet\sdk]
8.0.300 [C:\Program Files\dotnet\sdk]
функция --версия
Azure Functions Core Tools
Core Tools Version: 4.0.5801 Commit hash: N/A +5ac2f09758b98257e728dd1b5576ce5ea9ef68ff (64-bit)
Function Runtime Version: 4.34.1.22669
Версия Visual Studio
Microsoft Visual Studio Community 2022 (2) (64-bit) - Current
Version 17.10.0





Не существует доступной среды выполнения функции, соответствующей версиям, указанным в проекте.
%LocalAppData%\AzureFunctionsTools.Tools=>Options=>Projects & Solutions=>Azure functions:
Я создал изолированную функцию Azure от DotNet, используя команды, как вы упомянули.
Microsoft Visual Studio Community 2022 (64-bit) - Current
Version 17.9.7
Azure Functions Core Tools
Core Tools Version: 4.0.5801
Function Runtime Version: 4.34.1.22669
.csproj:
<Project Sdk = "Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>queue_events</RootNamespace>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include = "Microsoft.AspNetCore.App" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.20.1" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.1.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.2.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.16.4" />
<PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.21.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.1.0" />
</ItemGroup>
<ItemGroup>
<None Update = "host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update = "local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Using Include = "System.Threading.ExecutionContext" Alias = "ExecutionContext" />
</ItemGroup>
</Project>
локальные.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
}
}
хост.json:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
}
}

В моем случае это исправило очистка кэшированных инструментов функций Azure. Вы могли бы подумать, что переустановка инструментов Azure Function Core поможет сделать это, но я думаю, что нет. Спасибо!