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

运行PowerShell连接ADX集群数据库时遇构造函数调用异常

解决PowerShell连接ADX集群时KustoConnectionStringBuilder初始化失败的问题

错误现象

执行PowerShell脚本连接ADX集群时触发以下错误:

New-Object: /home/anuruddha/kqltest.ps1:10
Line |
  10 |  $kcsb = New-Object Kusto.Data.KustoConnectionStringBuilder ($clusterU …
     |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling ".ctor" with "2" argument(s): "The type initializer for 'Kusto.Data.KustoConnectionStringBuilder' threw an exception." 

对应的脚本内容:

$packagesRoot = "/home/user/tools/net472"

[System.Reflection.Assembly]::LoadFrom("$packagesRoot\Kusto.Data.dll")

$clusterUrl = "https://testcluster.kusto.windows.net;Fed=True"
$databaseName = "testdb"
$kcsb = New-Object Kusto.Data.KustoConnectionStringBuilder ($clusterUrl, $databaseName)

调用$Error[0].Exception.GetBaseException()|fl * -Force得到底层异常:

Message        : Could not load file or assembly 'Kusto.Cloud.Platform, Version=11.0.0.0, Culture=neutral, PublicKeyToken=829a00acde12d551'. The system cannot find the file specified.
FileName       : Kusto.Cloud.Platform, Version=11.0.0.0, Culture=neutral, PublicKeyToken=829a00acde12d551
FusionLog      : 
TargetSite     : 
Data           : {}
InnerException : 
HelpLink       : 
Source         : 
HResult        : -2147024894
StackTrace     : 

问题根源

Kusto.Data.dll依赖同版本的Kusto.Cloud.Platform.dll(版本11.0.0.0),但脚本仅加载了Kusto.Data.dll,系统无法自动找到缺失的依赖程序集,导致KustoConnectionStringBuilder类型初始化失败。

解决方案

1. 确认依赖文件存在

检查$packagesRoot目录下是否存在Kusto.Cloud.Platform.dll,且版本为11.0.0.0,需与Kusto.Data.dll版本完全匹配。

2. 显式加载所有依赖程序集

在脚本中先加载依赖的Kusto.Cloud.Platform.dll,再加载Kusto.Data.dll,修改后的脚本如下:

$packagesRoot = "/home/user/tools/net472"

# 先加载依赖的Kusto.Cloud.Platform.dll
[System.Reflection.Assembly]::LoadFrom("$packagesRoot\Kusto.Cloud.Platform.dll")
# 再加载Kusto.Data.dll
[System.Reflection.Assembly]::LoadFrom("$packagesRoot\Kusto.Data.dll")

$clusterUrl = "https://testcluster.kusto.windows.net;Fed=True"
$databaseName = "testdb"
$kcsb = New-Object Kusto.Data.KustoConnectionStringBuilder ($clusterUrl, $databaseName)

3. 确保依赖版本一致

如果通过NuGet获取程序集,需确保安装的Kusto.Client包包含完整的依赖集,路径指向NuGet包的lib/net472目录,避免版本不匹配导致的加载失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:40:51