Azure Function(.NET6)调用Kusto登录时遇程序集加载异常问题
解决Azure Function中Kusto登录的System.Diagnostics.DiagnosticSource缺失问题
问题原因
Azure Function的.NET6 v4运行时沙箱环境未包含System.Diagnostics.DiagnosticSource 8.0.0.0版本,而你使用的Microsoft.Azure.Kusto.Data 12.2.3依赖该版本;控制台程序的.NET运行时依赖解析机制更灵活,能自动兼容处理,因此可正常运行。
解决方案
1. 显式安装指定版本的依赖包
直接在项目中安装System.Diagnostics.DiagnosticSource 8.0.0版本,确保运行时能找到对应程序集:
- 使用NuGet包管理器命令:
Install-Package System.Diagnostics.DiagnosticSource -Version 8.0.0 - 或手动编辑csproj文件添加引用:
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" />
2. 强制复制所有依赖到输出目录
在Azure Function项目的csproj文件中添加以下配置,确保所有NuGet依赖的程序集被复制到输出目录,避免运行时加载失败:
<PropertyGroup> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> </PropertyGroup>
3. 降级Kusto Data包版本(备选)
若安装指定版本的DiagnosticSource出现兼容性冲突,可尝试将Microsoft.Azure.Kusto.Data降级到11.x系列版本,该系列对DiagnosticSource的版本要求更低,更适配Azure Function的.NET6环境。
内容的提问来源于stack exchange,提问作者MatthiasMor
相关产品推荐
相关产品推荐

