运行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
相关产品推荐
相关产品推荐

