Merge branch 'master' of https://github.com/microsoft/Analysis-Services
This commit is contained in:
Коммит
0b672e4009
|
@ -62,20 +62,20 @@
|
|||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.43.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.4.43.0\lib\net461\Microsoft.Identity.Client.dll</HintPath>
|
||||
|
|
|
@ -123,12 +123,19 @@ namespace AlmToolkit
|
|||
var client = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("Microsoft"));
|
||||
var releases = await client.Repository.Release.GetAll("Microsoft", "Analysis-Services");
|
||||
|
||||
//TODO: iterate releases and check for latest.Name starts with "ALM Toolkit"
|
||||
var latest = releases[0];
|
||||
_latestVersion = latest.TagName;
|
||||
var installedVersion = new Version(Utils.AssemblyVersion);
|
||||
var latestVersion = new Version(_latestVersion);
|
||||
var result = latestVersion.CompareTo(installedVersion);
|
||||
var result = 0;
|
||||
for (int i = 0; i < releases.Count - 1; i++)
|
||||
{
|
||||
if (!releases[i].Prerelease && releases[i].Name.StartsWith("ALM Toolkit"))
|
||||
{
|
||||
var latest = releases[i];
|
||||
_latestVersion = latest.TagName;
|
||||
var installedVersion = new Version(Utils.AssemblyVersion);
|
||||
var latestVersion = new Version(_latestVersion);
|
||||
result = latestVersion.CompareTo(installedVersion);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (result > 0)
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<package id="cef.redist.x86" version="3.3239.1723" targetFramework="net461" />
|
||||
<package id="CefSharp.Common" version="63.0.3" targetFramework="net461" />
|
||||
<package id="CefSharp.WinForms" version="63.0.3" targetFramework="net461" />
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.67.0" targetFramework="net472" />
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.74.2" targetFramework="net472" />
|
||||
<package id="Microsoft.Identity.Client" version="4.43.0" targetFramework="net472" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
|
||||
<package id="Octokit" version="0.36.0" targetFramework="net472" />
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -5,10 +5,6 @@
|
|||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.56.0.0" newVersion="4.56.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace BismNormalizer.CommandLine
|
|||
string scriptFile = null;
|
||||
List<string> skipOptions = null;
|
||||
bool credsProvided = false;
|
||||
bool upgradeCompatLevel = false;
|
||||
string sourceUsername = "";
|
||||
string sourcePassword = "";
|
||||
string targetUsername = "";
|
||||
|
@ -61,6 +62,8 @@ namespace BismNormalizer.CommandLine
|
|||
Console.WriteLine("");
|
||||
Console.WriteLine(" /CredsProvided:True|False : User credentials from the command line to connect to Analysis Services.");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine(" /UpgradeCompatLevel:True|False : Automatically upgrade target compat level if it's less than the source one.");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine(" /SourceUsername:SourceUsername : Source database username.");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine(" /SourcePassword:SourcePassword : Source database password.");
|
||||
|
@ -81,6 +84,7 @@ namespace BismNormalizer.CommandLine
|
|||
const string scriptPrefix = "/script:";
|
||||
const string skipPrefix = "/skip:";
|
||||
const string credsProvidedPrefix = "/credsprovided:";
|
||||
const string upgradeCompatLevelPrefix = "/upgradecompatlevel:";
|
||||
const string sourceUsernamePrefix = "/sourceusername:";
|
||||
const string sourcePasswordPrefix = "/sourcepassword:";
|
||||
const string targetUsernamePrefix = "/targetusername:";
|
||||
|
@ -126,6 +130,23 @@ namespace BismNormalizer.CommandLine
|
|||
return ERROR_BAD_ARGUMENTS;
|
||||
}
|
||||
}
|
||||
else if (args[i].Length >= upgradeCompatLevelPrefix.Length && args[i].Substring(0, upgradeCompatLevelPrefix.Length).ToLower() == upgradeCompatLevelPrefix)
|
||||
{
|
||||
string upgradeCompatLevelString = args[i].Substring(upgradeCompatLevelPrefix.Length, args[i].Length - upgradeCompatLevelPrefix.Length);
|
||||
if (upgradeCompatLevelString == "True")
|
||||
{
|
||||
upgradeCompatLevel = true;
|
||||
}
|
||||
else if (upgradeCompatLevelString == "False")
|
||||
{
|
||||
upgradeCompatLevel = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"'{args[i]}' is not a valid argument.");
|
||||
return ERROR_BAD_ARGUMENTS;
|
||||
}
|
||||
}
|
||||
else if (args[i].Length >= sourceUsernamePrefix.Length && args[i].Substring(0, sourceUsernamePrefix.Length).ToLower() == sourceUsernamePrefix)
|
||||
{
|
||||
sourceUsername = args[i].Substring(sourceUsernamePrefix.Length, args[i].Length - sourceUsernamePrefix.Length);
|
||||
|
@ -169,6 +190,7 @@ namespace BismNormalizer.CommandLine
|
|||
}
|
||||
Console.WriteLine($"About to deserialize {bsmnFile}");
|
||||
ComparisonInfo comparisonInfo = ComparisonInfo.DeserializeBsmnFile(bsmnFile, "BISM Normalizer Command Line");
|
||||
comparisonInfo.Interactive = false;
|
||||
|
||||
Console.WriteLine();
|
||||
if (comparisonInfo.ConnectionInfoSource.UseProject)
|
||||
|
@ -210,6 +232,7 @@ namespace BismNormalizer.CommandLine
|
|||
comparisonInfo.WorkspaceServer = workspaceServer;
|
||||
}
|
||||
}
|
||||
comparisonInfo.UpgradeCompatLevel = upgradeCompatLevel;
|
||||
|
||||
_comparison = ComparisonFactory.CreateComparison(comparisonInfo);
|
||||
_comparison.ValidationMessage += HandleValidationMessage;
|
||||
|
|
|
@ -40,20 +40,20 @@
|
|||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.69.2.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.69.2.1\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.69.2.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.69.2.1\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.69.2.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.69.2.1\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.69.2.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.69.2.1\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.69.2.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.69.2.1\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.43.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.69.2.1" targetFramework="net472" />
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.74.2" targetFramework="net472" />
|
||||
<package id="Microsoft.Identity.Client" version="4.43.0" targetFramework="net472" />
|
||||
</packages>
|
|
@ -43,23 +43,20 @@
|
|||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Core, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.SPClient.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.67.0\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Tmdl, Version=19.67.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.Tabular.Tmdl.retail.amd64.19.67.0-TmdlPreview\lib\net45\Microsoft.AnalysisServices.Tabular.Tmdl.dll</HintPath>
|
||||
<Reference Include="Microsoft.AnalysisServices.Tabular.Json, Version=19.74.2.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AnalysisServices.retail.amd64.19.74.2\lib\net45\Microsoft.AnalysisServices.Tabular.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.43.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.4.43.0\lib\net461\Microsoft.Identity.Client.dll</HintPath>
|
||||
|
|
|
@ -168,17 +168,25 @@ namespace BismNormalizer.TabularCompare
|
|||
{
|
||||
string message = $"Source compatibility level { Convert.ToString(comparisonInfo.SourceCompatibilityLevel) } is higher than the target { Convert.ToString(comparisonInfo.TargetCompatibilityLevel) }, which is not supported for comparison.\n";
|
||||
|
||||
if (comparisonInfo.Interactive &&
|
||||
!comparisonInfo.ConnectionInfoTarget.UseProject && //Upgrade in SSDT not supported
|
||||
!comparisonInfo.ConnectionInfoTarget.UseDesktop && //Upgrade via port number to Desktop or SSDT not supported
|
||||
!comparisonInfo.ConnectionInfoTarget.UseBimFile && //Upgrade to offline file not (currently) supported
|
||||
System.Windows.Forms.MessageBox.Show(
|
||||
message + $"\nDo you want to upgrade the target to {Convert.ToString(comparisonInfo.SourceCompatibilityLevel)} and allow the comparison?", comparisonInfo.AppName, System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
if (
|
||||
( !comparisonInfo.ConnectionInfoTarget.UseProject && //Upgrade in SSDT not supported
|
||||
!comparisonInfo.ConnectionInfoTarget.UseDesktop && //Upgrade via port number to Desktop or SSDT not supported
|
||||
!comparisonInfo.ConnectionInfoTarget.UseBimFile //Upgrade to offline file not (currently) supported
|
||||
) &&
|
||||
(
|
||||
( comparisonInfo.Interactive &&
|
||||
System.Windows.Forms.MessageBox.Show(message + $"\nDo you want to upgrade the target to {Convert.ToString(comparisonInfo.SourceCompatibilityLevel)} and allow the comparison?", comparisonInfo.AppName, System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes
|
||||
) ||
|
||||
( !comparisonInfo.Interactive &&
|
||||
comparisonInfo.UpgradeCompatLevel
|
||||
)
|
||||
)
|
||||
)
|
||||
{
|
||||
returnTabularComparison.TargetTabularModel.Connect();
|
||||
returnTabularComparison.TargetTabularModel.TomDatabase.CompatibilityLevel = comparisonInfo.SourceCompatibilityLevel;
|
||||
returnTabularComparison.TargetTabularModel.TomDatabase.Update();
|
||||
returnTabularComparison.Disconnect();
|
||||
returnTabularComparison.MetadataResyncRequired = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -27,6 +27,7 @@ namespace BismNormalizer.TabularCompare
|
|||
private bool _interactive = true;
|
||||
private string _appName = Utils.AssemblyProduct;
|
||||
private bool _credsProvided = false;
|
||||
private bool _upgradeCompatLevel = false;
|
||||
private string _sourceUsername;
|
||||
private string _sourcePassword;
|
||||
private string _targetUsername;
|
||||
|
@ -160,6 +161,16 @@ namespace BismNormalizer.TabularCompare
|
|||
set { _credsProvided = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether to automatically upgrade the compat level if target is less than source
|
||||
/// </summary>
|
||||
[XmlIgnore()]
|
||||
public bool UpgradeCompatLevel
|
||||
{
|
||||
get { return _upgradeCompatLevel; }
|
||||
set { _upgradeCompatLevel = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Username for source model for when CredsProvided = true.
|
||||
/// </summary>
|
||||
|
|
|
@ -577,7 +577,8 @@ namespace BismNormalizer.TabularCompare
|
|||
Microsoft.AnalysisServices.Server amoServer = new Microsoft.AnalysisServices.Server();
|
||||
try
|
||||
{
|
||||
amoServer.Connect(BuildConnectionString());
|
||||
string connectionString = BuildConnectionString();
|
||||
amoServer.Connect(connectionString);
|
||||
}
|
||||
catch (ConnectionException) when (UseProject)
|
||||
{
|
||||
|
@ -836,19 +837,14 @@ $@"{{
|
|||
/// <returns></returns>
|
||||
public TOM.Database OpenDatabaseFromFolder()
|
||||
{
|
||||
TOM.Model modelFromTmdl = TOM.TmdlSerializer.DeserializeModelFromFolder(_tmdlFolder);
|
||||
string modelJson = TOM.JsonSerializer.SerializeObject(modelFromTmdl);
|
||||
|
||||
TOM.Database tomDatabase = TOM.TmdlSerializer.DeserializeDatabaseFromFolder(_tmdlFolder);
|
||||
|
||||
string modelJson = TOM.JsonSerializer.SerializeObject(tomDatabase.Model);
|
||||
_compatibilityMode = CompatibilityMode.AnalysisServices;
|
||||
_compatibilityMode = IsPbiCompatibilityMode(modelJson)
|
||||
? CompatibilityMode.PowerBI
|
||||
: CompatibilityMode.AnalysisServices;
|
||||
|
||||
//TODOTMDL: compat level is in the model.tmdl file, but it's a Database property, so not being read???
|
||||
//also how get db name?
|
||||
|
||||
TOM.Database tomDatabase = new TOM.Database(modelFromTmdl.Name);
|
||||
tomDatabase.Model = modelFromTmdl.Clone();
|
||||
return tomDatabase;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
|
|||
private TabularModel _sourceTabularModel;
|
||||
private TabularModel _targetTabularModel;
|
||||
private bool _uncommitedChanges = false;
|
||||
private bool _metadataResyncRequired = false;
|
||||
private DateTime _lastSourceSchemaUpdate = DateTime.MinValue;
|
||||
private DateTime _lastTargetSchemaUpdate = DateTime.MinValue;
|
||||
private bool _disposed = false;
|
||||
|
@ -41,6 +42,15 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
|
|||
set { _targetTabularModel = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sometimes need to resync metadata to avoid validation errors. For example if a compat level upgrade just happened.
|
||||
/// </summary>
|
||||
public bool MetadataResyncRequired
|
||||
{
|
||||
get { return _metadataResyncRequired; }
|
||||
set { _metadataResyncRequired = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public Comparison(ComparisonInfo comparisonInfo)
|
||||
|
@ -654,7 +664,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
|
|||
reconnect = true;
|
||||
}
|
||||
|
||||
if (reconnect || _uncommitedChanges)
|
||||
if (reconnect || _uncommitedChanges || _metadataResyncRequired)
|
||||
{
|
||||
// Reconnect to re-initialize
|
||||
_sourceTabularModel = new TabularModel(this, _comparisonInfo.ConnectionInfoSource, _comparisonInfo);
|
||||
|
@ -662,6 +672,8 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
|
|||
|
||||
_targetTabularModel = new TabularModel(this, _comparisonInfo.ConnectionInfoTarget, _comparisonInfo);
|
||||
_targetTabularModel.Connect();
|
||||
|
||||
_metadataResyncRequired = false;
|
||||
}
|
||||
|
||||
if (!_sourceTabularModel.ConnectionInfo.UseProject && _sourceTabularModel.TomDatabase.LastSchemaUpdate > _lastSourceSchemaUpdate)
|
||||
|
|
|
@ -2037,7 +2037,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
|
|||
|
||||
private void SaveToTmdlFolder()
|
||||
{
|
||||
TmdlSerializer.SerializeModelToFolder(_database.Model, _connectionInfo.TmdlFolder);
|
||||
TmdlSerializer.SerializeDatabaseToFolder(_database, _connectionInfo.TmdlFolder);
|
||||
}
|
||||
|
||||
private void SaveBimFile()
|
||||
|
|
|
@ -111,6 +111,18 @@
|
|||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.AnalysisServices.Tabular" publicKeyToken="89845dcd8080cc91" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-19.74.2.0" newVersion="19.74.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.AnalysisServices.Tabular.Json" publicKeyToken="89845dcd8080cc91" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-19.74.2.0" newVersion="19.74.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.AnalysisServices.Core" publicKeyToken="89845dcd8080cc91" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-19.74.2.0" newVersion="19.74.2.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<System.Windows.Forms.ApplicationConfigurationSection>
|
||||
<add key="DpiAwareness" value="PerMonitorV1" />
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.67.0" targetFramework="net472" />
|
||||
<package id="Microsoft.AnalysisServices.Tabular.Tmdl.retail.amd64" version="19.67.0-TmdlPreview" targetFramework="net472" />
|
||||
<package id="Microsoft.AnalysisServices.retail.amd64" version="19.74.2" targetFramework="net472" />
|
||||
<package id="Microsoft.Identity.Client" version="4.43.0" targetFramework="net472" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
|
||||
<package id="Ookii.Dialogs.WinForms" version="4.0.0" targetFramework="net472" />
|
||||
|
|
|
@ -10,5 +10,5 @@
|
|||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("5.0.65.0")]
|
||||
[assembly: AssemblyFileVersion("5.0.65.0")]
|
||||
[assembly: AssemblyVersion("5.0.69.0")]
|
||||
[assembly: AssemblyFileVersion("5.0.69.0")]
|
||||
|
|
Загрузка…
Ссылка в новой задаче