RuiRomano 2024-01-09 11:13:21 +00:00
Родитель 88e1539cca c01a5985b5
Коммит 0b672e4009
17 изменённых файлов: 810 добавлений и 645 удалений

Просмотреть файл

@ -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")]