Mac下Visual Studio 2022运行.NET 8 Isolated Azure Functions失败求助
Mac下运行.NET 8 Isolated模式Azure Functions项目报错「无法执行path.functionname.exe」
从Windows开发环境切换到Mac后,搭建并本地运行.NET 8 Isolated模式的Azure Functions项目时,出现「无法执行path.functionname.exe」错误。已尝试更新并还原所有NuGet包、清理bin目录、调整SDK版本设置,但问题仍未解决。
项目配置
触发器代码
using Microsoft.Azure.Functions.Worker; using Microsoft.Extensions.Logging; using System; namespace SchedulesFunction.Triggers { public class SchedulesTrigger { [Function("SchedulesTrigger")] public void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); } } }
.csproj配置
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <OutputType>Exe</OutputType> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.21.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.3.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.2" /> <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.2.0" /> </ItemGroup> <ItemGroup> </ItemGroup> <ItemGroup> <None Remove="Configuration\" /> </ItemGroup> <ItemGroup> <None Include="local.settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </None> </ItemGroup> <ItemGroup> <None Update="host.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup> <ItemGroup> <Folder Include="Configuration\" /> </ItemGroup> <ItemGroup> <Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" /> </ItemGroup> </Project>
Program.cs代码
using Microsoft.Azure.Functions.Worker; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var host = new HostBuilder() .ConfigureFunctionsWorkerDefaults() .ConfigureServices(services => { services.AddApplicationInsightsTelemetryWorkerService(); services.ConfigureFunctionsApplicationInsights(); }) .Build(); host.Run();
local.settings.json配置
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
已尝试的解决步骤
- 检查Azurite是否安装:
ps aux | grep azurite - 安装/更新Azurite:
npm install -g azurite - 运行Azurite:
azurite --silent - 获取最新版Azure Functions Core Tools:
brew tap azure/functions brew install azure-functions-core-tools@4 - 更新Visual Studio:
- 打开Visual Studio→新建项目→检查云项目是否可用
- 若不可用:打开任意项目→顶部菜单栏Visual Studio→检查更新→更新所有包(云项目应变为可用)
- 若可用:选择云→Azure Functions→查看可用Runtime(本机仅显示.NET Core 3.1)→运行→检查模板更新→重启应用(之后显示最高为.NET 7.0 Isolated)
- 打开Visual Studio→新建项目→检查云项目是否可用
最终放弃使用Visual Studio,转而使用Visual Studio Code,配置launch.json如下:
{ "version": "0.2.0", "configurations": [ { "name": "Attach to .NET Functions", "type": "coreclr", "request": "attach", "processId": "${command:azureFunctions.pickProcess}" } ] }
内容的提问来源于stack exchange,提问作者A P
相关产品推荐
相关产品推荐

