首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft.AnalysisServices.Tabular.JsonScripter问题

Microsoft.AnalysisServices.Tabular.JsonScripter问题
EN

Stack Overflow用户
提问于 2020-01-30 04:41:56
回答 1查看 517关注 0票数 1

我正尝试在Powershell脚本中调用Microsoft.AnalysisServices.Tabular.JsonScripter,以便为SSAS表格自动生成CreateOrReplace数据库脚本。但我一直收到以下错误。

代码语言:javascript
复制
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

下面是我正在测试的代码:

代码语言:javascript
复制
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);

程序集加载以下内容:

代码语言:javascript
复制
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...

因此,程序集应该得到认可,但它却在抱怨它们。在这种情况下,我应该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 23:20:14

我认为问题在于SqlServer模块似乎正在加载它自己的"AppLocal“版本的AMO程序集。如果您从脚本中删除第一行,它应该可以工作。您还可以将其简化为只加载主AMO程序集(这将根据需要加载任何其他依赖项),并且只使用Microsoft.AnalysisServices.Server进行连接,而不是使用特定于表格的类。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices");

代码语言:javascript
复制
$tab = "localhost\tab17";

$dbId = "testing";

$as = New-Object Microsoft.AnalysisServices.Server;

$as.Connect($tab);

$db = $as.Databases[$dbId];

[Microsoft.AnalysisServices.Tabular.JsonScripter]::ScriptCreateOrReplace($db);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59975253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档