我們有同樣的問題。
一件有趣的事情是:您可以嘗試將項目兼容性切換到SQL Server vNext,然後正常創建您的處理任務,成功點擊OK和其他東西(這是一個奇蹟!),然後切換回所需的版本並部署。
但是,如果您在同一個包中包含腳本任務 - 那麼您可以嘗試其他解決方法(我現在實際使用該解決方案)。使用腳本任務爲「Analysis Services執行DDL任務」填充變量(在我的示例中爲User :: DimensionsProcessingCommand)。這是小複雜的方式,但在未來非常有用。
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);
P.S. 我們的DEV機器從零開始安裝:SQL Server 2016,Visual Studio 2015,SSDT 17.1 當我們試圖在SQL Server 2016兼容性下開發一些SSIS包時 - 我們偶然發現了很多問題......所以我們只是停止計數他們。GAC在谷歌搜索和調整中沒有任何結果。 14.0微軟DEV環境看起來如此錯誤,並且......如果你嘗試在13.0及更低版本中創建某些東西,那麼它就會破壞。
的DLL可能需要在GAC存在。你能告訴我們你正在使用什麼版本的SSIS/SSDT和SQL嗎? –
SQL Server 2016 SSDT 14.0.61705.170 SSIS 14.0.600.250 – VegardKT
更新了我的答案,還有一件事要嘗試。 –