首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法未找到: Microsoft.AnalysisServices

方法未找到: Microsoft.AnalysisServices
EN

Stack Overflow用户
提问于 2017-07-17 07:27:37
回答 4查看 6.9K关注 0票数 2

我已经创建了一个带有SSIS包的数据仓库的ETL设置。在最后一步,即"Analysis处理任务编辑器“之前,一切都很正常。

每当我添加多维数据集并按ok键时,就会得到以下错误:

“方法未找到:"'Void Microsoft.AnalysisServices.Commands.ProcessCommand.set_Type(Microsoft.AnalysisServices.ProcessType)'.‘

我怀疑DLL存在一些问题,但我不确定是哪个问题。我在我的Server安装(C:\程序文件(x86)\Microsoft \120\SDK\Assemblies)下找到了一个x86,我在Visual安装文件夹中没有找到它。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-21 11:10:59

我找到了一个解决办法。

我试图用AdventureWorks数据集重现问题,以验证问题是否是由于.dll而不是我的多维数据集或其他任何东西造成的。

因此,我从AdventureWorks数据集创建了一个新的OLTP & DWH和cube,并创建了一个新的SSIS项目,其中唯一的步骤就是处理多维数据集。

通过这个设置,我没有得到与我在原始项目上相同的错误,看起来,.dll没有什么问题吗?

不过,我也尝试将目标服务器和多维数据集更改为原来的服务器和多维数据集,令我感到惊讶的是,它成功了!

因此,我保存了这个包,并将它导入到我原来的项目中,并从那里删除了这个包,它就可以工作了。

编辑:也请参阅Pavel的所有者解决方案。

奇怪的是,如果我们在项目部署模式下创建新的SSIS项目,退出2017年版本,并将其部署到我们2016年的SSIS服务上--所有这些都运行得非常好。所以..。我们只需要迁移到项目部署模式))-- Pavel

票数 3
EN

Stack Overflow用户

发布于 2017-07-19 09:31:48

我们也有同样的问题。

有趣的是:您可以尝试将您的项目兼容性切换到Server,然后正常创建处理任务,成功地单击OK和其他内容(这真是奇迹!),然后切换回所需的版本并进行部署。

但是,如果您在同一个包中有脚本任务,那么您可以尝试其他解决方法(我现在实际上正在使用)。使用脚本任务来填充"Analysis“的变量(在我的示例中是User::维度DimensionsProcessingCommand)。它虽然不太复杂,但在未来非常有用。

代码语言:javascript
复制
    public void Main()
    {
        Boolean tstFire = false;
        Microsoft.AnalysisServices.Server myServer = new Microsoft.AnalysisServices.Server();
        //Get connection to SSAS database from package
        ConnectionManager myConn = Dts.Connections["SSAS"];
        //Template for future use
        String ProcessingCommandTemplate = "<Batch xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\"><Parallel>XXXXXXX</Parallel></Batch>";
        String myProcessingCommand = "";
        //Array for gathering dimensions w/o duplicates
        Dictionary<Dimension, Cube> amoDimDictionary = new Dictionary<Dimension, Cube>();

        String myServerName = myConn.ConnectionString;
        String myDatabaseName = myConn.Properties["InitialCatalog"].GetValue(myConn).ToString();
        //Connect to SSAS server instance
        myServer.Connect(myServerName);

        Database amoDb = myServer.Databases.FindByName(myDatabaseName);

        //Get all dimensions used in cubes
        foreach (Cube amoCube in amoDb.Cubes)
        {
                foreach (CubeDimension amoDimension in amoCube.Dimensions)
            {
                if (!amoDimDictionary.ContainsKey(amoDimension.Dimension))
                {
                    amoDimDictionary.Add(amoDimension.Dimension, amoCube);
                }
            }
        }

        //Start XML capture Dimensions
        myServer.CaptureXml = true;
        foreach (Dimension amoDimension in amoDimDictionary.Keys)
        {
            if (amoDimension.State == AnalysisState.Unprocessed)
            {
                amoDimension.Process(ProcessType.ProcessFull);
            }
            else
            {
                amoDimension.Process(ProcessType.ProcessUpdate);
            }
        }
        myServer.CaptureXml = false;

        //Build command
        foreach (String strXML in myServer.CaptureLog)
        {
            myProcessingCommand = myProcessingCommand + strXML.ToString();
        }

        myProcessingCommand = ProcessingCommandTemplate.Replace("XXXXXXX", myProcessingCommand);
        Dts.Variables["User::DimensionsProcessingCommand"].Value = myProcessingCommand.ToString();
        //Command output to see at runtime from VS 2015
        Dts.Events.FireInformation(1, "", Dts.Variables["User::DimensionsProcessingCommand"].Value.ToString(), "", 0, ref tstFire);

在我们的DEV机器上是从头开始安装的: SQL Server 2016,Visual Studio 2015,SSDT 17.1,当我们试图在Server 2016兼容性下开发一些SSIS包时,我们遇到了很多问题.所以我们就停止计算了。GAC被谷歌搜索并来回调整,没有任何结果。微软的DEV环境看起来很有问题.如果你试图创建一个13.0以下的版本或者更低的版本,你就会崩溃。

票数 1
EN

Stack Overflow用户

发布于 2017-07-17 11:44:26

MS论坛帖子有以下建议。

如果存在,请将以下文件夹从GAC剪切并粘贴到其他地方。

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.AnalysisServices.DeploymentEngine

然后,重建这个项目。

  1. 右键单击项目
  2. 单击属性
  3. 展开配置属性->选择部署
  4. 在目标服务器:输入\< SSAS Instace Name> (确保SSAS服务器是多维SSAS实例)
  5. 单击Apply
  6. 拯救计划。重新启动IDE ( SSDT )
  7. 启动SSDT ->,选择项目->并重新构建解决方案\重建项目。
  8. 再试一次。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45138292

复制
相关文章

相似问题

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