You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载Kusto.Data.dll遇System.Runtime.dll加载异常的技术问询

解决Kusto.Data.dll加载时的系统依赖问题

问题分析

PowerShell 5.1基于.NET Framework,直接加载面向.NET Standard/.NET Core的Kusto.Data.dll时,会因为依赖的.NET Standard组件(如System.Runtime.dll、System.Data.Common.dll)未正确引用而报错。

解决方案

1. 直接通过程序集名称引用

对于.NET Framework的标准DLL,无需指定完整路径,直接写程序集名称即可,PowerShell会自动从全局程序集缓存(GAC)加载:

$kustoDllPath = "你的Kusto.Data.dll文件路径"
Add-Type -LiteralPath $kustoDllPath -ReferencedAssemblies @(
    "System.Runtime",
    "System.Data.Common"
)

2. 手动指定DLL路径(若GAC加载失败)

如果上述方法无效,可以从.NET Framework的安装目录获取这些DLL,默认路径如下:

  • System.Runtime.dll:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.dll
  • System.Data.Common.dll:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Data.Common.dll

对应的命令示例:

$frameworkPath = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\"
Add-Type -LiteralPath $kustoDllPath -ReferencedAssemblies @(
    Join-Path $frameworkPath "System.Runtime.dll",
    Join-Path $frameworkPath "System.Data.Common.dll"
)

3. 更省心的方案:加载NuGet包的完整依赖集

建议直接通过NuGet安装Kusto.Data包,然后加载包目录下的所有依赖DLL,避免手动处理引用:

# 假设已通过NuGet将Kusto.Data安装到当前目录的packages文件夹
$packagesRoot = Join-Path $PWD.Path "packages\Kusto.Data.*\lib\netstandard2.0"
$allDlls = Get-ChildItem -Path $packagesRoot -Filter *.dll
Add-Type -Path $allDlls.FullName

注意事项

  • PowerShell 5.1对.NET Standard组件的支持有限,若频繁遇到依赖问题,建议升级到PowerShell 7+,它对.NET Core/.NET Standard的兼容性更好。
  • 确保Kusto.Data.dll的版本与你的.NET Framework版本兼容(建议使用支持.NET Framework 4.6.1及以上的版本)。

内容的提问来源于stack exchange,提问作者user9297554

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:20:09