我正尝试在Powershell脚本中调用Microsoft.AnalysisServices.Tabular.JsonScripter,以便为SSAS表格自动生成CreateOrReplace数据库脚本。但我一直收到以下错误。
Exception calling "ScriptCreateOrReplace" with "1" argument(s): "Could not load file or assembly
'Microsoft.AnalysisServices.AppLocal.Tabular.Json, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'
or one of its dependencies. The system cannot find the file specified."
At C:\Desktop\json.ps1:10 char:1
+ [Microsoft.AnalysisServices.Tabular.JsonScripter]::ScriptCreateOrRepl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FileNotFoundException下面是我正在测试的代码:
Import-Module SqlServer
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices.Tabular");
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices.Core");
$tab = "server";
$dbId = "database";
$as = New-Object Microsoft.AnalysisServices.Tabular.Server;
$as.Connect($tab);
$db = $as.Databases[$dbId];
[Microsoft.AnalysisServices.Tabular.JsonScripter]::ScriptCreateOrReplace($db);程序集加载以下内容:
GAC Version Location
--- ------- --------
True v4.0.30319 C:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.AnalysisServices.Tabular\v4.0_14.0.0.0__8...
True v4.0.30319 C:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.AnalysisServices.Core\v4.0_14.0.0.0__8984...因此,程序集应该得到认可,但它却在抱怨它们。在这种情况下,我应该怎么做?
发布于 2020-01-30 23:20:14
我认为问题在于SqlServer模块似乎正在加载它自己的"AppLocal“版本的AMO程序集。如果您从脚本中删除第一行,它应该可以工作。您还可以将其简化为只加载主AMO程序集(这将根据需要加载任何其他依赖项),并且只使用Microsoft.AnalysisServices.Server进行连接,而不是使用特定于表格的类。
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices");
$tab = "localhost\tab17";
$dbId = "testing";
$as = New-Object Microsoft.AnalysisServices.Server;
$as.Connect($tab);
$db = $as.Databases[$dbId];
[Microsoft.AnalysisServices.Tabular.JsonScripter]::ScriptCreateOrReplace($db);https://stackoverflow.com/questions/59975253
复制相似问题