Compare commits

...

11 Commits

Author SHA1 Message Date
Dimitrij
4b28eb6758 patch to remove secure-string implementation (will need to be implemented differently)
what will temporary allow to type-in and edit passwords
2025-03-30 13:56:38 +01:00
Dimitrij
ba45b44f45 lib update 2025-03-30 13:04:24 +01:00
Dimitrij
f5186cbadd lib updates 2025-03-19 12:09:39 +00:00
Dimitrij
807924c51e fix for NETSDK1137 (https://learn.microsoft.com/en-us/dotnet/core/tools/sdk-errors/netsdk1137) 2025-03-10 10:59:11 +00:00
Dimitrij
155d849201 Lib update 2025-03-10 09:55:11 +00:00
Dimitrij
e9efd2705c Lib update 2025-03-01 15:24:00 +00:00
Dimitrij
204e0d041c fix to make _mRIdentifier class-level 2025-02-18 02:45:07 +00:00
Dimitrij
227d75d956 Add new method to generate a unique identifier for the machine 2025-02-18 02:20:37 +00:00
Dimitrij
d2706c8748 Switch to use central package version management 2025-02-18 01:58:43 +00:00
Dimitrij
2518b8600f System.Data.SqlClient package is now deprecated, migrated to Microsoft.Data.SqlClient. 2025-02-17 15:23:38 +00:00
Dimitrij
9300839d59 switch to .net9 2025-02-17 14:43:51 +00:00
43 changed files with 830 additions and 597 deletions

103
Directory.Packages.props Normal file
View File

@@ -0,0 +1,103 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<NoWarn>$(NoWarn);NU1507</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AWSSDK.Core" Version="3.7.402.29" />
<PackageVersion Include="AWSSDK.EC2" Version="3.7.436.11" />
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.5.1" />
<PackageVersion Include="Castle.Core" Version="5.2.1" />
<PackageVersion Include="ConsoleControl" Version="1.3.0" />
<PackageVersion Include="ConsoleControlAPI" Version="1.3.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="Cucumber.Messages" Version="27.0.2" />
<PackageVersion Include="DockPanelSuite" Version="3.1.1" />
<PackageVersion Include="DockPanelSuite.ThemeVS2015" Version="3.1.1" />
<PackageVersion Include="Gherkin" Version="32.0.1" />
<PackageVersion Include="Google.Protobuf" Version="3.30.2" />
<PackageVersion Include="LiteDB" Version="5.0.21" />
<PackageVersion Include="log4net" Version="3.0.4" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.0.1" />
<PackageVersion Include="Microsoft.Data.SqlClient.SNI" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.3" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.3" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageVersion Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
<PackageVersion Include="Microsoft.NETCore.Targets" Version="5.0.0" />
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.3124.44" />
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.135" />
<PackageVersion Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.5" />
<PackageVersion Include="MySql.Data" Version="9.2.0" />
<PackageVersion Include="NETStandard.Library" Version="2.0.3" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Newtonsoft.Json.Schema" Version="4.0.1" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="NUnit" Version="4.3.2" />
<PackageVersion Include="NUnit.Console" Version="3.19.2" />
<PackageVersion Include="NUnit.ConsoleRunner" Version="3.19.2" />
<PackageVersion Include="NUnit.Extension.TeamCityEventListener" Version="1.0.9" />
<PackageVersion Include="NUnit.Runners" Version="3.12.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="5.0.0" />
<PackageVersion Include="OpenCover" Version="4.7.1221" />
<PackageVersion Include="Renci.SshNet.Async" Version="1.4.0" />
<PackageVersion Include="ReportGenerator" Version="5.4.5" />
<PackageVersion Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.native.System" Version="4.3.1" />
<PackageVersion Include="runtime.native.System.IO.Compression" Version="4.3.2" />
<PackageVersion Include="runtime.native.System.Net.Http" Version="4.3.1" />
<PackageVersion Include="runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="SpecFlow" Version="3.9.74" />
<PackageVersion Include="SpecFlow.NUnit" Version="3.9.74" />
<PackageVersion Include="SSH.NET" Version="2024.2.0" />
<PackageVersion Include="System.Buffers" Version="4.6.1" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.3" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.3" />
<PackageVersion Include="System.Console" Version="4.3.1" />
<PackageVersion Include="System.Data.Common" Version="4.3.0" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.3" />
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.3" />
<PackageVersion Include="System.DirectoryServices" Version="9.0.3" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.3" />
<PackageVersion Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageVersion Include="System.Formats.Asn1" Version="9.0.3" />
<PackageVersion Include="System.IO.Pipelines" Version="9.0.3" />
<PackageVersion Include="System.Management" Version="9.0.3" />
<PackageVersion Include="System.Memory" Version="4.6.2" />
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Net.Primitives" Version="4.3.1" />
<PackageVersion Include="System.Net.Sockets" Version="4.3.0" />
<PackageVersion Include="System.Reflection.Emit" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.3" />
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
<PackageVersion Include="System.Resources.ResourceManager" Version="4.3.0" />
<PackageVersion Include="System.Runtime" Version="4.3.1" />
<PackageVersion Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.1" />
<PackageVersion Include="System.Runtime.Extensions" Version="4.3.1" />
<PackageVersion Include="System.Security.AccessControl" Version="6.0.1" />
<PackageVersion Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
<PackageVersion Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageVersion Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="9.0.3" />
<PackageVersion Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
<PackageVersion Include="System.Security.Permissions" Version="9.0.3" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.3" />
<PackageVersion Include="System.Text.Json" Version="9.0.3" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.2" />
<PackageVersion Include="System.ValueTuple" Version="4.6.1" />
<PackageVersion Include="System.Windows.Extensions" Version="9.0.3" />
<PackageVersion Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageVersion Include="VncSharpCore" Version="1.2.1" />
<PackageVersion Include="ZstdSharp.Port" Version="0.8.5" />
</ItemGroup>
</Project>

View File

@@ -1,7 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<TargetFramework>net9.0-windows7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
@@ -10,22 +9,18 @@
<Configurations>Debug;Release;Debug Portable;Release Portable;Deploy to github</Configurations>
<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Portable|x64'">
<Optimize>True</Optimize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.Core" Version="3.7.402.1" />
<PackageReference Include="AWSSDK.EC2" Version="3.7.430.2" />
<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="AWSSDK.Core" />
<PackageReference Include="AWSSDK.EC2" />
<PackageReference Include="BouncyCastle.Cryptography" />
<PackageReference Include="Newtonsoft.Json" />
</ItemGroup>
<ItemGroup>
<Compile Update="AWS\AWSConnectionForm.cs" />
<Compile Update="CPS\CPSConnectionForm.cs" />
<Compile Update="DSS\SSConnectionForm.cs" />
</ItemGroup>
</Project>
</Project>

View File

@@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<Deterministic>false</Deterministic>
@@ -7,9 +6,8 @@
<AssemblyName>ObjectListView</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
<ItemGroup>
<Content Include="CustomDictionary.xml" Link="CustomDictionary.xml" />
<Content Include="Resources\clear-filter.png" Link="Resources\clear-filter.png" />
@@ -19,7 +17,6 @@
<Content Include="Resources\sort-ascending.png" Link="Resources\sort-ascending.png" />
<Content Include="Resources\sort-descending.png" Link="Resources\sort-descending.png" />
</ItemGroup>
<ItemGroup>
<Folder Include="CellEditing\" />
<Folder Include="DragDrop\" />
@@ -30,9 +27,8 @@
<Folder Include="Resources\" />
<Folder Include="Rendering\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
<PackageReference Include="System.Drawing.Common" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
</ItemGroup>
</Project>

View File

@@ -8,6 +8,7 @@ using System.Threading;
using System.Windows.Forms;
using mRemoteNG.Config.Settings;
using mRemoteNG.UI.Forms;
using System.Runtime.InteropServices;
namespace mRemoteNG.App
{
@@ -45,6 +46,28 @@ namespace mRemoteNG.App
//Subscribe to AssemblyResolve event
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
//Check if needed runtime is installed
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
string runtimeVersion = RuntimeInformation.FrameworkDescription;
if (runtimeVersion.Contains(".NET 9.0.2"))
{
Console.WriteLine(".NET Desktop Runtime 9.0.2 is already installed.");
}
else
{
Console.WriteLine(".NET Desktop Runtime 9.0.2 is not installed. Please download and install it from the following link:");
Console.WriteLine("https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-9.0.2-windows-x64-installer");
Console.WriteLine("After installation, please restart the application.");
}
}
else
{
Console.WriteLine("This application requires the .NET Desktop Runtime 9.0.2 on Windows.");
}
//Check if local settings DB exist or accessible
CheckLockalDB();
@@ -62,7 +85,7 @@ namespace mRemoteNG.App
private static void CheckLockalDB()
{
LocalSettingsDBManager settingsManager = new LocalSettingsDBManager(dbPath: "mRemoteNG.appSettings", useEncryption: false, schemaFilePath: "");
LocalDBManager settingsManager = new LocalDBManager(dbPath: "mRemoteNG.appSettings", useEncryption: false, schemaFilePath: "");
}
private static Assembly OnAssemblyResolve(object sender, ResolveEventArgs resolveArgs)
{

View File

@@ -3,7 +3,7 @@ using mRemoteNG.Config.DatabaseConnectors;
using mRemoteNG.Messages;
using mRemoteNG.App;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using System.Runtime.Versioning;
namespace mRemoteNG.Config.DataProviders

View File

@@ -1,5 +1,5 @@
using System;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using System.Runtime.Versioning;
using System.Threading.Tasks;

View File

@@ -1,6 +1,6 @@
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using System.Threading.Tasks;
// ReSharper disable ArrangeAccessorOwnerBody

View File

@@ -0,0 +1,140 @@
using System;
using System.Management;
using System.Net.NetworkInformation;
using System.Runtime.Versioning;
using System.Security.Cryptography;
using System.Text;
namespace mRemoteNG.Config.MachineIdentifier
{
[SupportedOSPlatform("windows")]
/// <summary>
/// Provides functionality to generate a consistent and unique machine identifier
/// based on hardware properties (disk serial number, MAC address, BIOS UUID, and machine name).
/// This class is supported only on Windows.
/// </summary>
public static class MachineIdentifierGenerator
{
/// <summary>
/// Generates a consistent machine identifier by combining hardware-based identifiers
/// (disk serial number, MAC address, BIOS UUID, and machine name) and hashing the result.
/// </summary>
/// <returns>A consistent and unique identifier for the machine.</returns>
/// <exception cref="PlatformNotSupportedException">Thrown if the method is called on a non-Windows platform.</exception>
public static string GenerateMachineIdentifier()
{
// Ensure the code runs only on Windows
if (!OperatingSystem.IsWindows())
{
throw new PlatformNotSupportedException("This method is supported only on Windows.");
}
// Retrieve hardware-based identifiers (with fallbacks)
string diskId = GetDiskSerialNumber() ?? "NO_DISK_ID";
string macAddress = GetMacAddress() ?? "NO_MAC_ADDRESS";
string biosUuid = GetBiosUuid() ?? "NO_BIOS_UUID";
string machineName = Environment.MachineName;
// Combine them into a single string
string combined = $"{diskId}_{macAddress}_{biosUuid}_{machineName}";
// Hash the combined string to ensure a fixed length and improve security
using (SHA256 sha256 = SHA256.Create())
{
byte[] hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(combined));
return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
}
}
/// <summary>
/// Retrieves the serial number of the first physical disk using WMI.
/// </summary>
/// <returns>The disk serial number, or null if the serial number cannot be retrieved.</returns>
private static string GetDiskSerialNumber()
{
try
{
using (ManagementObjectSearcher searcher = new("SELECT SerialNumber FROM Win32_DiskDrive"))
{
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD["SerialNumber"] != null)
{
string serialNumber = wmi_HD["SerialNumber"].ToString().Trim();
if (!string.IsNullOrEmpty(serialNumber))
{
return serialNumber;
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error retrieving disk serial number: {ex.Message}");
}
return null; // Return null if the disk serial number cannot be retrieved
}
/// <summary>
/// Retrieves the MAC address of the first active network adapter.
/// </summary>
/// <returns>The MAC address, or null if the MAC address cannot be retrieved.</returns>
private static string GetMacAddress()
{
try
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in interfaces)
{
if (adapter.OperationalStatus == OperationalStatus.Up)
{
string macAddress = adapter.GetPhysicalAddress().ToString();
if (!string.IsNullOrEmpty(macAddress))
{
return macAddress;
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error retrieving MAC address: {ex.Message}");
}
return null; // Return null if the MAC address cannot be retrieved
}
/// <summary>
/// Retrieves the BIOS UUID of the machine using WMI.
/// </summary>
/// <returns>The BIOS UUID, or null if the UUID cannot be retrieved.</returns>
private static string GetBiosUuid()
{
try
{
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UUID FROM Win32_ComputerSystemProduct"))
{
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD["UUID"] != null)
{
string uuid = wmi_HD["UUID"].ToString().Trim();
if (!string.IsNullOrEmpty(uuid))
{
return uuid;
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error retrieving BIOS UUID: {ex.Message}");
}
return null; // Return null if the BIOS UUID cannot be retrieved
}
}
}

View File

@@ -113,8 +113,10 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
: "";
connectionRecord.Password = headers.Contains("Password")
? connectionCsv[headers.IndexOf("Password")].ConvertToSecureString()
: "".ConvertToSecureString();
// ? connectionCsv[headers.IndexOf("Password")].ConvertToSecureString()
// : "".ConvertToSecureString();
? connectionCsv[headers.IndexOf("Password")]
: "";
connectionRecord.Domain = headers.Contains("Domain")
? connectionCsv[headers.IndexOf("Domain")]

View File

@@ -112,7 +112,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
sb.Append(FormatForCsv(con.Username));
if (_saveFilter.SavePassword)
sb.Append(con.Password?.ConvertToUnsecureString() + ";");
//sb.Append(con.Password?.ConvertToUnsecureString() + ";");
sb.Append(con.Password + ";");
if (_saveFilter.SaveDomain)
sb.Append(FormatForCsv(con.Domain));

View File

@@ -131,7 +131,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv.RemoteDesktopMa
Hostname = hostString,
Port = port,
Username = username,
Password = password?.ConvertToSecureString(),
//Password = password?.ConvertToSecureString(),
Password = password,
Domain = domain,
Icon = connectionType.IconName ?? "mRemoteNG",
Description = description,

View File

@@ -113,7 +113,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Sql
connectionInfo.OpeningCommand = (string)dataRow["OpeningCommand"];
connectionInfo.Panel = (string)dataRow["Panel"];
var pw = dataRow["Password"] as string;
connectionInfo.Password = DecryptValue(pw ?? "").ConvertToSecureString();
//connectionInfo.Password = DecryptValue(pw ?? "").ConvertToSecureString();
connectionInfo.Password = DecryptValue(pw ?? "");
connectionInfo.Port = (int)dataRow["Port"];
connectionInfo.PostExtApp = (string)dataRow["PostExtApp"];
connectionInfo.PreExtApp = (string)dataRow["PreExtApp"];

View File

@@ -519,7 +519,10 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Sql
dataRow["InheritVNCViewOnly"].Equals(false);
}
bool pwd = dataRow["Password"].Equals(_saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey) : "") &&
//bool pwd = dataRow["Password"].Equals(_saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey) : "") &&
// dataRow["VNCProxyPassword"].Equals(_cryptographyProvider.Encrypt(connectionInfo.VNCProxyPassword, _encryptionKey)) &&
// dataRow["RDGatewayPassword"].Equals(_cryptographyProvider.Encrypt(connectionInfo.RDGatewayPassword, _encryptionKey));
bool pwd = dataRow["Password"].Equals(_saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey) : "") &&
dataRow["VNCProxyPassword"].Equals(_cryptographyProvider.Encrypt(connectionInfo.VNCProxyPassword, _encryptionKey)) &&
dataRow["RDGatewayPassword"].Equals(_cryptographyProvider.Encrypt(connectionInfo.RDGatewayPassword, _encryptionKey));
return !(pwd && isFieldNotChange && isInheritanceFieldNotChange);
@@ -572,10 +575,11 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Sql
dataRow["MacAddress"] = connectionInfo.MacAddress;
dataRow["Name"] = connectionInfo.Name;
dataRow["OpeningCommand"] = connectionInfo.OpeningCommand;
dataRow["OpeningCommand"] = connectionInfo.OpeningCommand;
// dataRow["OpeningCommand"] = connectionInfo.OpeningCommand; dublicate?
dataRow["Panel"] = connectionInfo.Panel;
dataRow["ParentID"] = connectionInfo.Parent?.ConstantID ?? "";
dataRow["Password"] = _saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey) : "";
//dataRow["Password"] = _saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey) : "";
dataRow["Password"] = _saveFilter.SavePassword ? _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey) : "";
dataRow["Port"] = connectionInfo.Port;
dataRow["PositionID"] = _currentNodeIndex;
dataRow["PostExtApp"] = connectionInfo.PostExtApp;

View File

@@ -61,7 +61,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
: new XAttribute("Domain", ""));
if (_saveFilter.SavePassword && !connectionInfo.Inheritance.Password)
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password.ConvertToUnsecureString(), _encryptionKey)));
//element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password.ConvertToUnsecureString(), _encryptionKey)));
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey)));
else
element.Add(new XAttribute("Password", ""));

View File

@@ -62,7 +62,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
: new XAttribute("Domain", ""));
if (_saveFilter.SavePassword && !connectionInfo.Inheritance.Password)
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password.ConvertToUnsecureString(), _encryptionKey)));
//element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password.ConvertToUnsecureString(), _encryptionKey)));
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey)));
else
element.Add(new XAttribute("Password", ""));
}

View File

@@ -62,7 +62,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
: new XAttribute("Domain", ""));
if (_saveFilter.SavePassword && !connectionInfo.Inheritance.Password)
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey)));
//element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password?.ConvertToUnsecureString(), _encryptionKey)));
element.Add(new XAttribute("Password", _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey)));
else
element.Add(new XAttribute("Password", ""));
}

View File

@@ -217,8 +217,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
if (!Runtime.UseCredentialManager || _confVersion <= 2.6) // 0.2 - 2.6
{
connectionInfo.Username = xmlnode.GetAttributeAsString("Username");
//connectionInfo.Password = _decryptor.Decrypt(xmlnode.GetAttributeAsString("Password"));
connectionInfo.Password = _decryptor.Decrypt(xmlnode.GetAttributeAsString("Password")).ConvertToSecureString();
connectionInfo.Password = _decryptor.Decrypt(xmlnode.GetAttributeAsString("Password"));
//connectionInfo.Password = _decryptor.Decrypt(xmlnode.GetAttributeAsString("Password")).ConvertToSecureString();
connectionInfo.Domain = xmlnode.GetAttributeAsString("Domain");
}
}

View File

@@ -134,7 +134,8 @@ namespace mRemoteNG.Config.Serializers.MiscSerializers
XmlNode loginNode = xmlNode.SelectSingleNode("./login");
connectionInfo.Username = loginNode?.SelectSingleNode("login")?.InnerText;
connectionInfo.Password = loginNode?.SelectSingleNode("password")?.InnerText.ConvertToSecureString();
//connectionInfo.Password = loginNode?.SelectSingleNode("password")?.InnerText.ConvertToSecureString();
connectionInfo.Password = loginNode?.SelectSingleNode("password")?.InnerText;
// ./prompt
// ./timeout/connectiontimeout

View File

@@ -164,12 +164,15 @@ namespace mRemoteNG.Config.Serializers.MiscSerializers
if (_schemaVersion == 1) // Version 2.2 allows clear text passwords
{
connectionInfo.Password = passwordNode?.Attributes?["storeAsClearText"]?.Value == "True"
? passwordNode.InnerText.ConvertToSecureString()
: DecryptRdcManPassword(passwordNode?.InnerText).ConvertToSecureString();
//? passwordNode.InnerText.ConvertToSecureString()
//: DecryptRdcManPassword(passwordNode?.InnerText).ConvertToSecureString();
? passwordNode.InnerText
: DecryptRdcManPassword(passwordNode?.InnerText);
}
else
{
connectionInfo.Password = DecryptRdcManPassword(passwordNode?.InnerText).ConvertToSecureString();
//connectionInfo.Password = DecryptRdcManPassword(passwordNode?.InnerText).ConvertToSecureString();
connectionInfo.Password = DecryptRdcManPassword(passwordNode?.InnerText);
}
connectionInfo.Domain = logonCredentialsNode.SelectSingleNode("./domain")?.InnerText ?? string.Empty;

View File

@@ -2,7 +2,7 @@
using mRemoteNG.Config.DatabaseConnectors;
using mRemoteNG.Messages;
using System;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using System.Runtime.Versioning;
namespace mRemoteNG.Config.Serializers.Versioning

View File

@@ -3,7 +3,7 @@ using mRemoteNG.Config.DatabaseConnectors;
using mRemoteNG.Messages;
using System;
using System.Data.Common;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using System.Runtime.Versioning;
namespace mRemoteNG.Config.Serializers.Versioning

View File

@@ -2,12 +2,14 @@
using System.IO;
using System.Collections.Generic;
using System.Text.Json;
using System.Management;
using JsonSerializer = System.Text.Json.JsonSerializer;
using LiteDB;
using System.Linq;
using LiteDB;
using mRemoteNG.Config.MachineIdentifier;
using System.Runtime.Versioning;
public class LocalSettingsDBManager
[SupportedOSPlatform("windows")]
public class LocalDBManager
{
private readonly string _dbPath;
private readonly string _schemaPath;
@@ -21,12 +23,31 @@ public class LocalSettingsDBManager
/// <param name="dbPath">The path to the database file.</param>
/// <param name="useEncryption">Indicates whether to use encryption for the database. If null, no change is made to an existing database.</param>
/// <param name="schemaFilePath">Optional path to a schema file for creating the database structure.</param>
public LocalSettingsDBManager(string dbPath = null, bool? useEncryption = null, string schemaFilePath = null)
public LocalDBManager(string dbPath = null, bool? useEncryption = null, string schemaFilePath = null)
{
_dbPath = string.IsNullOrWhiteSpace(dbPath) ? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "mRemoteNG.appSettings") : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dbPath);
_schemaPath = string.IsNullOrWhiteSpace(schemaFilePath) ? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Schemas\\mremoteng_default_settings_v1_0.json") : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, schemaFilePath);
_useEncryption = useEncryption;
_mRIdentifier = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create().ComputeHash(System.Text.Encoding.UTF8.GetBytes(GetDiskIdentifier() + "_" + Environment.MachineName)));
/// <summary>
/// Generate a unique identifier for the machine
/// </summary>
try
{
// Generate the machine identifier
_mRIdentifier = MachineIdentifierGenerator.GenerateMachineIdentifier();
Console.WriteLine($"Generated Identifier: {_mRIdentifier}");
}
catch (PlatformNotSupportedException ex)
{
Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
// Check if disk identifier is empty and prevent database creation if true
if (string.IsNullOrEmpty(_mRIdentifier))
@@ -53,6 +74,7 @@ public class LocalSettingsDBManager
}
}
/// <summary>
/// Ensures default settings are imported if the database is empty.
/// </summary>
@@ -369,42 +391,6 @@ public void EncryptDatabase()
}
}
/// <summary>
/// Gets the unique machine identifier (serial number of the hard drive) combined with the machine name and encrypts it using SHA256.
/// </summary>
/// <returns>Unique machine identifier.</returns>
private static string GetDiskIdentifier()
{
if (OperatingSystem.IsWindows())
{
try
{
// Use ManagementObject to get the serial number of the hard drive
using (var searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive"))
{
foreach (var disk in searcher.Get())
{
string sn = "" + disk["SerialNumber"]; // 2025-01-14 in .net8 this returns NULL in virtual machines
return sn.Trim();
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error getting disk identifier: {ex.Message}");
throw new InvalidOperationException("Failed to retrieve disk identifier. Please ensure the disk information is accessible.");
}
}
else
{
throw new PlatformNotSupportedException("This method is only supported on Windows.");
}
// Return an empty string if no serial number is found
return string.Empty;
}
// Setting class
public class Setting

View File

@@ -30,7 +30,8 @@ namespace mRemoteNG.Connection
private ExternalCredentialProvider _externalCredentialProvider;
private string _userViaAPI = "";
private string _username = "";
private SecureString _password = null;
//private SecureString _password = null;
private string _password = null;
private string _domain = "";
private string _vmId = "";
private bool _useEnhancedMode;
@@ -214,7 +215,8 @@ namespace mRemoteNG.Connection
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionPassword)),
PasswordPropertyText(true),
AttributeUsedInAllProtocolsExcept(ProtocolType.Telnet, ProtocolType.Rlogin, ProtocolType.RAW)]
public virtual SecureString Password
//public virtual SecureString Password
public virtual string Password
{
get => GetPropertyValue("Password", _password);
set => SetField(ref _password, value, "Password");

View File

@@ -102,7 +102,8 @@ namespace mRemoteNG.Connection.Protocol
{
string username = InterfaceControl.Info?.Username ?? "";
string password = InterfaceControl.Info?.Password?.ConvertToUnsecureString() ?? "";
//string password = InterfaceControl.Info?.Password?.ConvertToUnsecureString() ?? "";
string password = InterfaceControl.Info?.Password ?? "";
string domain = InterfaceControl.Info?.Domain ?? "";
string UserViaAPI = InterfaceControl.Info?.UserViaAPI ?? "";
string privatekey = "";

View File

@@ -426,7 +426,8 @@ namespace mRemoteNG.Connection.Protocol.RDP
{
case RDGatewayUseConnectionCredentials.Yes:
_rdpClient.TransportSettings2.GatewayUsername = connectionInfo.Username;
_rdpClient.TransportSettings2.GatewayPassword = connectionInfo.Password.ConvertToUnsecureString();
//_rdpClient.TransportSettings2.GatewayPassword = connectionInfo.Password.ConvertToUnsecureString();
_rdpClient.TransportSettings2.GatewayPassword = connectionInfo.Password;
_rdpClient.TransportSettings2.GatewayDomain = connectionInfo?.Domain;
break;
case RDGatewayUseConnectionCredentials.SmartCard:
@@ -540,7 +541,8 @@ namespace mRemoteNG.Connection.Protocol.RDP
string domain = connectionInfo?.Domain ?? "";
string userViaApi = connectionInfo?.UserViaAPI ?? "";
string pkey = "";
string password = (connectionInfo?.Password?.ConvertToUnsecureString() ?? "");
//string password = (connectionInfo?.Password?.ConvertToUnsecureString() ?? "");
string password = (connectionInfo?.Password ?? "");
// access secret server api if necessary
if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.DelineaSecretServer)

View File

@@ -226,7 +226,8 @@ namespace mRemoteNG.Connection.Protocol.VNC
private string VNCEvent_Authenticate()
{
return _info.Password.ConvertToUnsecureString();
//return _info.Password.ConvertToUnsecureString();
return _info.Password;
}
#endregion

View File

@@ -43,7 +43,8 @@ namespace mRemoteNG.Connection
[ReadOnly(true)] public override string Username { get; set; }
[ReadOnly(true), Browsable(false)] public override SecureString Password { get; set; }
//[ReadOnly(true), Browsable(false)] public override SecureString Password { get; set; }
[ReadOnly(true), Browsable(false)] public override string Password { get; set; }
[ReadOnly(true)] public override ProtocolType Protocol { get; set; }

View File

@@ -18,10 +18,10 @@ using System.Resources;
[assembly: AssemblyCulture("")]
// Version information
[assembly: AssemblyVersion("1.78.1.2873")]
[assembly: AssemblyFileVersion("1.78.1.2873")]
[assembly: AssemblyVersion("1.78.2.2932")]
[assembly: AssemblyFileVersion("1.78.2.2932")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
[assembly: AssemblyInformationalVersion("1.78.1 (Nightly Build 2873)")]
[assembly: AssemblyInformationalVersion("1.78.2 (Nightly Build 2932)")]
// Logging
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

View File

@@ -32,7 +32,7 @@ using System.Resources;
//build is a number of days from date of last release + curent hour + curent minute of build
int major = 1;
int minor = 78;
int revision = 1;
int revision = 2;
string channel = "Nightly Build";
DateTime lastReleaseDate = new DateTime(2019, 9, 2);
DateTime CurrentDate = DateTime.UtcNow;

View File

@@ -187,7 +187,8 @@ namespace mRemoteNG.Tools
replacement = Properties.OptionsCredentialsPage.Default.DefaultUsername;
break;
case "password":
replacement = _connectionInfo.Password.ConvertToUnsecureString();
//replacement = _connectionInfo.Password.ConvertToUnsecureString();
replacement = _connectionInfo.Password;
if (string.IsNullOrEmpty(replacement) && Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
replacement = new LegacyRijndaelCryptographyProvider().Decrypt(Convert.ToString(Properties.OptionsCredentialsPage.Default.DefaultPassword), Runtime.EncryptionKey);
break;

View File

@@ -833,7 +833,8 @@ namespace mRemoteNG.UI.Controls
App.Windows.Show(WindowType.SSHTransfer);
App.Windows.SshtransferForm.Hostname = _connectionTree.SelectedNode.Hostname;
App.Windows.SshtransferForm.Username = _connectionTree.SelectedNode.Username;
App.Windows.SshtransferForm.Password = _connectionTree.SelectedNode.Password.ConvertToUnsecureString();
//App.Windows.SshtransferForm.Password = _connectionTree.SelectedNode.Password.ConvertToUnsecureString();
App.Windows.SshtransferForm.Password = _connectionTree.SelectedNode.Password;
App.Windows.SshtransferForm.Port = Convert.ToString(_connectionTree.SelectedNode.Port);
}
catch (Exception ex)

View File

@@ -470,7 +470,8 @@ namespace mRemoteNG.UI.Window
App.Windows.SshtransferForm.Hostname = connectionInfo.Hostname;
App.Windows.SshtransferForm.Username = connectionInfo.Username;
App.Windows.SshtransferForm.Password = connectionInfo.Password.ConvertToUnsecureString();
//App.Windows.SshtransferForm.Password = connectionInfo.Password.ConvertToUnsecureString();
App.Windows.SshtransferForm.Password = connectionInfo.Password;
App.Windows.SshtransferForm.Port = Convert.ToString(connectionInfo.Port);
}
catch (Exception ex)

View File

@@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<TargetFramework>net9.0-windows7.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon>Icons\mRemoteNG.ico</ApplicationIcon>
<Version>1.77.3-dev</Version>
@@ -87,80 +87,80 @@
</COMReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />
<PackageReference Include="Castle.Core" Version="5.1.1" />
<PackageReference Include="ConsoleControl" Version="1.3.0" />
<PackageReference Include="ConsoleControlAPI" Version="1.3.0" />
<PackageReference Include="Cucumber.Messages" Version="27.0.2" />
<PackageReference Include="DockPanelSuite" Version="3.1.1" />
<PackageReference Include="DockPanelSuite.ThemeVS2015" Version="3.1.1" />
<PackageReference Include="Google.Protobuf" Version="3.29.3" />
<PackageReference Include="LiteDB" Version="5.0.21" />
<PackageReference Include="log4net" Version="3.0.3" />
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.5" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.2" />
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
<PackageReference Include="Microsoft.NETCore.Targets" Version="5.0.0" />
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3065.39" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.135" />
<PackageReference Include="MySql.Data" Version="9.2.0" />
<PackageReference Include="NETStandard.Library" Version="2.0.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />
<PackageReference Include="OpenCover" Version="4.7.1221" />
<PackageReference Include="Renci.SshNet.Async" Version="1.4.0" />
<PackageReference Include="ReportGenerator" Version="5.4.4" />
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.native.System" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Data.SqlClient.sni" Version="4.7.0" />
<PackageReference Include="runtime.native.System.IO.Compression" Version="4.3.2" />
<PackageReference Include="runtime.native.System.Net.Http" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="SSH.NET" Version="2024.2.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Collections.Immutable" Version="9.0.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.2" />
<PackageReference Include="System.Console" Version="4.3.1" />
<PackageReference Include="System.Data.Common" Version="4.3.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.2" />
<PackageReference Include="System.Diagnostics.EventLog" Version="9.0.2" />
<PackageReference Include="System.DirectoryServices" Version="9.0.2" />
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.2" />
<PackageReference Include="System.IO.Pipelines" Version="9.0.2" />
<PackageReference Include="System.Management" Version="9.0.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Net.Primitives" Version="4.3.1" />
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
<PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageReference Include="System.Reflection.Metadata" Version="9.0.2" />
<PackageReference Include="System.Resources.ResourceManager" Version="4.3.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.1" />
<PackageReference Include="System.Security.AccessControl" Version="6.0.1" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
<PackageReference Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="9.0.2" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
<PackageReference Include="System.Security.Permissions" Version="9.0.2" />
<PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.2" />
<PackageReference Include="System.Text.Json" Version="9.0.2" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.0" />
<PackageReference Include="System.Windows.Extensions" Version="9.0.2" />
<PackageReference Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageReference Include="VncSharpCore" Version="1.2.1" />
<PackageReference Include="ZstdSharp.Port" Version="0.8.4" />
<PackageReference Include="BouncyCastle.Cryptography" />
<PackageReference Include="Castle.Core" />
<PackageReference Include="ConsoleControl" />
<PackageReference Include="ConsoleControlAPI" />
<PackageReference Include="Cucumber.Messages" />
<PackageReference Include="DockPanelSuite" />
<PackageReference Include="DockPanelSuite.ThemeVS2015" />
<PackageReference Include="Google.Protobuf" />
<PackageReference Include="LiteDB" />
<PackageReference Include="log4net" />
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell" />
<PackageReference Include="Microsoft.Data.SqlClient" />
<PackageReference Include="Microsoft.Data.SqlClient.SNI" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" />
<PackageReference Include="Microsoft.NETCore.Platforms" />
<PackageReference Include="Microsoft.NETCore.Targets" />
<PackageReference Include="Microsoft.Web.WebView2" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" />
<PackageReference Include="MySql.Data" />
<PackageReference Include="NETStandard.Library" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Newtonsoft.Json.Schema" />
<PackageReference Include="OpenCover" />
<PackageReference Include="Renci.SshNet.Async" />
<PackageReference Include="ReportGenerator" />
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.native.System" />
<PackageReference Include="runtime.native.System.IO.Compression" />
<PackageReference Include="runtime.native.System.Net.Http" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="SSH.NET" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Configuration.ConfigurationManager" />
<PackageReference Include="System.Console" />
<PackageReference Include="System.Data.Common" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
<PackageReference Include="System.Diagnostics.EventLog" />
<PackageReference Include="System.DirectoryServices" />
<PackageReference Include="System.Drawing.Common" />
<PackageReference Include="System.Formats.Asn1" />
<PackageReference Include="System.IO.Pipelines" />
<PackageReference Include="System.Management" />
<PackageReference Include="System.Net.Http" />
<PackageReference Include="System.Net.Primitives" />
<PackageReference Include="System.Net.Sockets" />
<PackageReference Include="System.Reflection.Emit" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" />
<PackageReference Include="System.Reflection.Emit.Lightweight" />
<PackageReference Include="System.Reflection.Metadata" />
<PackageReference Include="System.Resources.ResourceManager" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Runtime.Extensions" />
<PackageReference Include="System.Security.AccessControl" />
<PackageReference Include="System.Security.Cryptography.Algorithms" />
<PackageReference Include="System.Security.Cryptography.Cng" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" />
<PackageReference Include="System.Security.Permissions" />
<PackageReference Include="System.Security.Principal.Windows" />
<PackageReference Include="System.Text.Encoding.CodePages" />
<PackageReference Include="System.Text.Json" />
<PackageReference Include="System.Text.RegularExpressions" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<PackageReference Include="System.Windows.Extensions" />
<PackageReference Include="System.Xml.ReaderWriter" />
<PackageReference Include="VncSharpCore" />
<PackageReference Include="ZstdSharp.Port" />
</ItemGroup>
<ItemGroup>
<Compile Update="Language\Language.Designer.cs">
@@ -591,16 +591,15 @@
</None>
</ItemGroup>
-->
<!--
<Target Name="MoveSatelliteResources" AfterTargets="Build">
<ItemGroup>
<SatelliteResources Include="$(OutputPath)**\*.resources.dll" />
</ItemGroup>
<!-- Создаем папку Languages, если она еще не существует -->
<MakeDir Directories="$(OutputPath)Languages" />
<Move SourceFiles="@(SatelliteResources)" DestinationFolder="$(OutputPath)Languages\%(RecursiveDir)" />
<RemoveDir Directories="@(SatelliteResources->'%(RootDir)%(Directory)')" Condition="Exists('%(RootDir)%(Directory)')" />
</Target>
</Target>-->
<Target Name="CopyPackageAssembliesToSubFolder" AfterTargets="ResolveReferences">
<ItemGroup>
<ReferenceCopyLocalPaths Condition=" '%(ReferenceCopyLocalPaths.NuGetPackageId)' != '' " Update="%(ReferenceCopyLocalPaths)" DestinationSubDirectory="Assemblies\" />

View File

@@ -2,6 +2,7 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="dirEA5DE0DA87CCDD60F4B26843B622260F" Name="Assemblies" />
<Directory Id="dir82972532CA27BEF6B972C3A142E19BC1" Name="cs-CZ" />
<Directory Id="dirF7A62AAB979B938D6BCEC1392A589DA5" Name="de" />
<Directory Id="dir62078C356EA332979A99724C7722A56A" Name="el" />
@@ -33,86 +34,38 @@
</Fragment>
<Fragment>
<ComponentGroup Id="MandatoryComponents">
<Component Id="cmp0FFDB5713D4361B40AD821F8DA4DEE0B" Directory="INSTALLDIR" Guid="*">
<File Id="fil476630E8F9CF75F8A90F5A6BE104F314" KeyPath="yes" Source="$(var.HarvestPath)\AWSSDK.Core.dll" />
</Component>
<Component Id="cmpEB77DBE680AF298F880635C9CE9E4C0F" Directory="INSTALLDIR" Guid="*">
<File Id="fil27E42615D840C88A58DA9387A7D8E8C5" KeyPath="yes" Source="$(var.HarvestPath)\AWSSDK.EC2.dll" />
</Component>
<Component Id="cmp35D96EA44AD8354ED2F995D3EBCCE1A7" Directory="INSTALLDIR" Guid="*">
<File Id="fil19AFB7CDBA1EEFE8FFFF6028483B5EC8" KeyPath="yes" Source="$(var.HarvestPath)\AxInterop.MSTSCLib.dll" />
</Component>
<Component Id="cmpCBEA014CBDE48790EFE6E51B50449D69" Directory="INSTALLDIR" Guid="*">
<File Id="filEB357278F6A9A25D8406C57985FDD5B2" KeyPath="yes" Source="$(var.HarvestPath)\BouncyCastle.Cryptography.dll" />
</Component>
<Component Id="cmp9A3B2D379B0CE7EDEFF2F82ABE850DF3" Directory="INSTALLDIR" Guid="*">
<File Id="fil87F50FF5306E148144A953F7C1056119" KeyPath="yes" Source="$(var.HarvestPath)\Castle.Core.dll" />
</Component>
<Component Id="cmpADE94032AA8563E1E37003C8AB2D8F7E" Directory="INSTALLDIR" Guid="*">
<File Id="fil6BA5B21301D77ADAE00F1DA02BFE8584" KeyPath="yes" Source="$(var.HarvestPath)\ConsoleControl.dll" />
</Component>
<Component Id="cmpCD880D9D0A268B608165CA720A505323" Directory="INSTALLDIR" Guid="*">
<File Id="fil2D3E8B5BFE62A4776A87A75AD6DD50EA" KeyPath="yes" Source="$(var.HarvestPath)\ConsoleControlAPI.dll" />
</Component>
<Component Id="cmpB33DF036D353C8FDD69458B2FE71E10B" Directory="INSTALLDIR" Guid="*">
<File Id="filDE15699EEB9D455A194CFECACB2D34CA" KeyPath="yes" Source="$(var.HarvestPath)\Cucumber.Messages.dll" />
</Component>
<Component Id="cmpD846FD49FC176CEFBA3E8411896C6DEE" Directory="INSTALLDIR" Guid="*">
<File Id="fil86AC9D6CDBC2AE2AADFE752F1AD83685" KeyPath="yes" Source="$(var.HarvestPath)\ExternalConnectors.dll" />
</Component>
<Component Id="cmp0E22CC4281F53936AB57E54775E94F4C" Directory="INSTALLDIR" Guid="*">
<File Id="filEA870C5699E25304BC08ED0EFD930BC6" KeyPath="yes" Source="$(var.HarvestPath)\ExternalConnectors.pdb" />
</Component>
<Component Id="cmp19EC39A721B3368567C267C98B3A70BF" Directory="INSTALLDIR" Guid="*">
<File Id="filF4F0A4E8F055AEBFE89D956290E642D9" KeyPath="yes" Source="$(var.HarvestPath)\Google.Protobuf.dll" />
</Component>
<Component Id="cmp3B87E05C275CE85388D030CC01BF1E20" Directory="INSTALLDIR" Guid="*">
<File Id="fil3FCEFF3CAE083B7927D5D4E4B0218A88" KeyPath="yes" Source="$(var.HarvestPath)\Interop.MSTSCLib.dll" />
</Component>
<Component Id="cmp3704AF810B8B1ADEB2C20918E40DA29E" Directory="INSTALLDIR" Guid="*">
<File Id="filD1D4DD2035A15DD71B833418EA523091" KeyPath="yes" Source="$(var.HarvestPath)\K4os.Compression.LZ4.dll" />
</Component>
<Component Id="cmpE98E07B7C155CF0BFA0E0961247C7F5D" Directory="INSTALLDIR" Guid="*">
<File Id="filA177E40950ED3A37831193753E1C42CC" KeyPath="yes" Source="$(var.HarvestPath)\K4os.Compression.LZ4.Streams.dll" />
</Component>
<Component Id="cmp9F2B7587D0DBBAE60FACF8282508F693" Directory="INSTALLDIR" Guid="*">
<File Id="fil7A31D991E2C50622F9B19BE8FF45FCF0" KeyPath="yes" Source="$(var.HarvestPath)\K4os.Hash.xxHash.dll" />
</Component>
<Component Id="cmp5E68557401DD3BBD13A6456F82E68933" Directory="INSTALLDIR" Guid="*">
<File Id="filF2A35FCD031F0E8060D9B20F5020448B" KeyPath="yes" Source="$(var.HarvestPath)\LiteDB.dll" />
</Component>
<Component Id="cmp375F226751B298CD70903C1646985757" Directory="INSTALLDIR" Guid="*">
<File Id="filBF38EEDD7B5695007E9582D7EF347826" KeyPath="yes" Source="$(var.HarvestPath)\log4net.config" />
</Component>
<Component Id="cmp13D6573EA8CF3F99F44BAE837E2771F0" Directory="INSTALLDIR" Guid="*">
<File Id="fil2991F53D601CDF7142D0A9E1B42E116E" KeyPath="yes" Source="$(var.HarvestPath)\log4net.dll" />
<Component Id="cmp73DD793C33CE93882A21562E8A0FFB47" Directory="INSTALLDIR" Guid="*">
<File Id="fil579DAFF7079024ADD71395BB16AB9D2F" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.arm64.dll" />
</Component>
<Component Id="cmpD260DC351EC81A0F26BF7DFC4D4408EE" Directory="INSTALLDIR" Guid="*">
<File Id="fil1FEACF4D5D2B967B7918AD6377343597" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Configuration.Abstractions.dll" />
<Component Id="cmp791187EFDDB68CDC204D6B654412E444" Directory="INSTALLDIR" Guid="*">
<File Id="fil7F00295DB9A936843822F989B9CBA9D7" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.arm64.pdb" />
</Component>
<Component Id="cmpA68E778F1D7D2F60DB632AAD027FEA97" Directory="INSTALLDIR" Guid="*">
<File Id="filB8495885E80044AB9603F88738A4C9B4" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Configuration.dll" />
<Component Id="cmpE910730FCBBF20B14612C406EFEB5402" Directory="INSTALLDIR" Guid="*">
<File Id="fil3B5C5DF4AF7232C40BB382C38F178F78" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.x64.dll" />
</Component>
<Component Id="cmp298BC5B37CA8C07EC92A0E5D40538042" Directory="INSTALLDIR" Guid="*">
<File Id="fil48146EFA804659308973D873F0252345" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Configuration.FileExtensions.dll" />
<Component Id="cmpBC5D78342783913CB2940FD1FBCB1C0F" Directory="INSTALLDIR" Guid="*">
<File Id="filADC5E7D9C4AB391364380BC83CACEAC6" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.x64.pdb" />
</Component>
<Component Id="cmp3DD83D520E625620C7BD4F55FD5768CD" Directory="INSTALLDIR" Guid="*">
<File Id="fil11B19ABE63105CD3CE2E7BC6F0B063FC" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Configuration.Json.dll" />
<Component Id="cmp96D6DF96D2A198FC969F762CF63B7FE1" Directory="INSTALLDIR" Guid="*">
<File Id="fil20E640AE0EC1940CE699975354638F02" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.x86.dll" />
</Component>
<Component Id="cmpE730231ED01417A686E3B1E936A33FD1" Directory="INSTALLDIR" Guid="*">
<File Id="fil2B496571F14090C6028DBC68CD7447B0" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Configuration.UserSecrets.dll" />
</Component>
<Component Id="cmp9FD912282D15F41E038568645420F573" Directory="INSTALLDIR" Guid="*">
<File Id="fil62C6DEDCE27F3904041E09D4BA69211F" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.FileProviders.Abstractions.dll" />
</Component>
<Component Id="cmpE245AF4E56033540BBDFDF9AE650AD54" Directory="INSTALLDIR" Guid="*">
<File Id="filAF8DE62578E8AE75DF8E32E4296023C5" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.FileProviders.Physical.dll" />
</Component>
<Component Id="cmp63FBCF19029B83249CA57D9278E41E71" Directory="INSTALLDIR" Guid="*">
<File Id="fil264DD14CFE0C23400444D282D2288191" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.FileSystemGlobbing.dll" />
</Component>
<Component Id="cmpA57E038D78392C02DC9072B9436713ED" Directory="INSTALLDIR" Guid="*">
<File Id="fil101327A254DDD17E94E9880E128F3819" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Extensions.Primitives.dll" />
<Component Id="cmpC4CA779526A596D761793D72815BCAD4" Directory="INSTALLDIR" Guid="*">
<File Id="fil00B18124BDEDC291ABC44152343CF2C1" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Data.SqlClient.SNI.x86.pdb" />
</Component>
<Component Id="cmp104087D18B25A9A8D2ECC5B6EA2AE79B" Directory="INSTALLDIR" Guid="*">
<File Id="fil5282108DD54B6C7D192C3E9D001FD4E7" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Web.WebView2.Core.dll" />
@@ -126,14 +79,8 @@
<File Id="fil157A3D211984A88620C183E777A80E6C" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Web.WebView2.Wpf.dll" />
</Component>
<Component Id="cmpD50AAEBA16B0EDC9604A98ACE658A845" Directory="INSTALLDIR" Guid="*">
<File Id="filCEEBBF9C2BEC45096E1C078FBEA81F7D" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.WindowsAPICodePack.dll" />
</Component>
<Component Id="cmp22F8D282DB59EF9E4E43C92C5C180A12" Directory="INSTALLDIR" Guid="*">
<File Id="fil5512F1826793049537DA79C9E3A80EEF" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.WindowsAPICodePack.Shell.dll" />
</Component>
<Component Id="cmp6107C12C2A55CB8E7E97FF2C9A33F385" Directory="INSTALLDIR" Guid="*">
<File Id="fil135F9AEEB4A74E1EE438100986E97C41" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Xaml.Behaviors.dll" />
<Component Id="cmp7BBC914C2D9AE0E04A00AA2CF03B3079" Directory="INSTALLDIR" Guid="*">
<File Id="fil245C1F42A64B9E10948A26E3F1A58891" KeyPath="yes" Source="$(var.HarvestPath)\mRemoteNG.appSettings" />
</Component>
<Component Id="cmp41D33384103998013724F7507BE537A3" Directory="INSTALLDIR" Guid="*">
<File Id="filD409F3953DFE64FEE2FDC4460BD98297" KeyPath="yes" Source="$(var.HarvestPath)\mRemoteNG.deps.json" />
@@ -152,98 +99,245 @@
<File Id="fil09655B2FCDF14CBBA2E03BBD3F6C58EE" KeyPath="yes" Source="$(var.HarvestPath)\mRemoteNG.runtimeconfig.json" />
</Component>
<Component Id="cmp1D9B3E298A697AB163089035161BFA1D" Directory="INSTALLDIR" Guid="*">
<File Id="fil895DC5B7ACBE0A8A9EE74F34EAD5B5AA" KeyPath="yes" Source="$(var.HarvestPath)\MySql.Data.dll" />
</Component>
<Component Id="cmp1874AB219070404EED322213C6A1A49E" Directory="INSTALLDIR" Guid="*">
<File Id="fil05FF769999D602AD4FA6A489C44ED290" KeyPath="yes" Source="$(var.HarvestPath)\Newtonsoft.Json.dll" />
</Component>
<Component Id="cmp7AEB9E00DA2B23A94ADC134B17568089" Directory="INSTALLDIR" Guid="*">
<File Id="filE617F72806AFCE08E644ED4251A5E00B" KeyPath="yes" Source="$(var.HarvestPath)\Newtonsoft.Json.Schema.dll" />
</Component>
<Component Id="cmp2C1BBE07A32C31BCF92912D601AD4864" Directory="INSTALLDIR" Guid="*">
<File Id="fil357AF76EEBAC3CE454CB549E0C337C8A" KeyPath="yes" Source="$(var.HarvestPath)\ObjectListView.dll" />
</Component>
<Component Id="cmp453A7CFAC82EFE94060420B9EC717B13" Directory="INSTALLDIR" Guid="*">
<File Id="fil75E4B7BB134A62C4BBDC1D28A03634C9" KeyPath="yes" Source="$(var.HarvestPath)\ObjectListView.pdb" />
</Component>
<Component Id="cmp3019E4BCFC1F7BFEB026297F494CDC2E" Directory="INSTALLDIR" Guid="*">
<File Id="fil797FCFCB5FB0EBD58C78584C7C63BF5A" KeyPath="yes" Source="$(var.HarvestPath)\PuTTYNG.exe" />
</Component>
<Component Id="cmp8EFDE1F21B7D56B957F262CC057CB4BA" Directory="INSTALLDIR" Guid="*">
<File Id="fil56FF3B20B7AFB789C5CF4AA13D753C36" KeyPath="yes" Source="$(var.HarvestPath)\Renci.SshNet.Async.dll" />
</Component>
<Component Id="cmpEDFC52653A3A4D5C80AB3A0B7CE9AE35" Directory="INSTALLDIR" Guid="*">
<File Id="fil9C1ED4726B58F1CD4C25AF29BDBE0F77" KeyPath="yes" Source="$(var.HarvestPath)\Renci.SshNet.dll" />
</Component>
<Component Id="cmp9FE179B5698B8FE808D67A42A2301631" Directory="INSTALLDIR" Guid="*">
<File Id="fil3A0AC17A20B9686E9132DFD2A8E6AD85" KeyPath="yes" Source="$(var.HarvestPath)\System.CodeDom.dll" />
</Component>
<Component Id="cmp766725A1CF4B80360E394F57382642D1" Directory="INSTALLDIR" Guid="*">
<File Id="filDC06E116994F0AD9DB302B2604F02277" KeyPath="yes" Source="$(var.HarvestPath)\System.Configuration.ConfigurationManager.dll" />
</Component>
<Component Id="cmp5675881D66BF7DE0E0A868739AD7F946" Directory="INSTALLDIR" Guid="*">
<File Id="filDA785AFF57F9E7A7BD773E100D9E6FBA" KeyPath="yes" Source="$(var.HarvestPath)\System.Data.SqlClient.dll" />
</Component>
<Component Id="cmpAACF5E53E756313D8E5E9BB13B6046E4" Directory="INSTALLDIR" Guid="*">
<File Id="fil90434715D998053EA6394C3DF56A0E2E" KeyPath="yes" Source="$(var.HarvestPath)\System.Diagnostics.DiagnosticSource.dll" />
</Component>
<Component Id="cmp9C60459D2AEE6648758E381D83CB227A" Directory="INSTALLDIR" Guid="*">
<File Id="filA8B30A0CCAFA3326C53E5E336302E208" KeyPath="yes" Source="$(var.HarvestPath)\System.DirectoryServices.dll" />
</Component>
<Component Id="cmp5A9DE43A64CE294A93558F61CA5BB4BF" Directory="INSTALLDIR" Guid="*">
<File Id="filDF3E8E7DBB7ECB9667388ED48E5B5E08" KeyPath="yes" Source="$(var.HarvestPath)\System.IO.Pipelines.dll" />
</Component>
<Component Id="cmp4987A12F91B834B985ADB612F38026B0" Directory="INSTALLDIR" Guid="*">
<File Id="fil4F83F13F1555091B8DEBF43FC616B1BB" KeyPath="yes" Source="$(var.HarvestPath)\System.Management.dll" />
</Component>
<Component Id="cmp43A33CE3413979CC718E796B1C1E3E5B" Directory="INSTALLDIR" Guid="*">
<File Id="fil6E218B321475AAF07492F4993D21A018" KeyPath="yes" Source="$(var.HarvestPath)\System.Security.AccessControl.dll" />
</Component>
<Component Id="cmpF504650A7859834E56B465827ADA1936" Directory="INSTALLDIR" Guid="*">
<File Id="filF3505C51B6D770D84F54BDDB6F4AE5C2" KeyPath="yes" Source="$(var.HarvestPath)\System.Security.Cryptography.ProtectedData.dll" />
</Component>
<Component Id="cmpBF5BB5837F083D17A2BA92FC36056382" Directory="INSTALLDIR" Guid="*">
<File Id="filC75C6B87288BDC7AD405CB5B1C42548E" KeyPath="yes" Source="$(var.HarvestPath)\System.Security.Permissions.dll" />
</Component>
<Component Id="cmpD5EF7B2A59F953E92E81EF7D6E6DBA82" Directory="INSTALLDIR" Guid="*">
<File Id="filC1BF4E80AF32E75E9827A0C9117D6A6B" KeyPath="yes" Source="$(var.HarvestPath)\System.Text.Encoding.CodePages.dll" />
</Component>
<Component Id="cmp206FF62AFB3A24778BAE485B63485052" Directory="INSTALLDIR" Guid="*">
<File Id="filB677743AECD8AD78DAE140FEA82D0294" KeyPath="yes" Source="$(var.HarvestPath)\System.Text.Encodings.Web.dll" />
</Component>
<Component Id="cmpCDB39EEC233133D55C787C80B9972F09" Directory="INSTALLDIR" Guid="*">
<File Id="fil488CB682A18F35F874A0168ADCE0C287" KeyPath="yes" Source="$(var.HarvestPath)\System.Text.Json.dll" />
</Component>
<Component Id="cmpB2560850D900452E47078C892AA808D0" Directory="INSTALLDIR" Guid="*">
<File Id="filC6B0E40BCEA275B9B7A3C418789E773E" KeyPath="yes" Source="$(var.HarvestPath)\System.Windows.Extensions.dll" />
</Component>
<Component Id="cmp706223D2ABF6685A8E778D40099041C4" Directory="INSTALLDIR" Guid="*">
<File Id="filB19F03244FC8ACDFED93F0A01EDD6A3F" KeyPath="yes" Source="$(var.HarvestPath)\VisualElements_150.png" />
</Component>
<Component Id="cmp255D4D829FEC7E132FD1C14ECB455A2C" Directory="INSTALLDIR" Guid="*">
<File Id="fil4F8AD9111B5248D2CBC3F4AD3D2EDB8B" KeyPath="yes" Source="$(var.HarvestPath)\VisualElements_70.png" />
</Component>
<Component Id="cmp0F95C4FB4AE66539A1C6029C40AA52E6" Directory="INSTALLDIR" Guid="*">
<File Id="fil0B33C04EA75E681D3E3040870BDF6C0F" KeyPath="yes" Source="$(var.HarvestPath)\VncSharpCore.dll" />
<Component Id="cmp71560C791E2DF17E0A5781F8B518DA78" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filC8E3336E7FE2FD9E0AEB7C87CED46225" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\AWSSDK.Core.dll" />
</Component>
<Component Id="cmpF64D60E2A7A50FD6241ABDBE27E31F59" Directory="INSTALLDIR" Guid="*">
<File Id="filED0391668232DF3DEA5823C1D36F49AD" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.dll" />
<Component Id="cmpA0441C32B788060C47970989ED4B5ABF" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filF17B847CF8A244207E315885859FD897" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\AWSSDK.EC2.dll" />
</Component>
<Component Id="cmpBA753907719CFB8E5911F999855AB374" Directory="INSTALLDIR" Guid="*">
<File Id="filB22044E1A17BCF2A77B31ED2880C383E" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.ThemeVS2003.dll" />
<Component Id="cmpA759EFDC4BD049ACBB9E1044CC03F5A4" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filE4A4CD2FFCAADE6B26DB853DF998BEEA" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Azure.Core.dll" />
</Component>
<Component Id="cmp99E30557E2F072FB29D00E931D7D317E" Directory="INSTALLDIR" Guid="*">
<File Id="filC953E16DEA7DD878C0BEFD21A0823CAB" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.ThemeVS2005.dll" />
<Component Id="cmpAE9279CF4CCD05DA236D0B0A01404956" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil4EB27A4E1D5D9B99E10A0DE38A3CAD93" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Azure.Identity.dll" />
</Component>
<Component Id="cmp57DED95B03D5971E9AAAF14373B9EA3B" Directory="INSTALLDIR" Guid="*">
<File Id="fil2C5156DB6E373C1CB1FBF4E0C9951B60" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.ThemeVS2012.dll" />
<Component Id="cmp9C05BA0000D3C7442C3269AC269A6E0D" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil05368A8F5D5D305EE8BA8527BE51114D" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\BouncyCastle.Cryptography.dll" />
</Component>
<Component Id="cmp500B898207EDED255FBDD483C986F0E8" Directory="INSTALLDIR" Guid="*">
<File Id="fil6A069A23F89129064B507EBC47F9A76E" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.ThemeVS2013.dll" />
<Component Id="cmp57E640C9AF0343B3206A86DEE4E5D1D3" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil0751F7CA5335535177552B9384B9E42A" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Castle.Core.dll" />
</Component>
<Component Id="cmpCB1387F6E09FEBEA8084E857787F33EA" Directory="INSTALLDIR" Guid="*">
<File Id="fil09E77F330B2D23A6F306099688F7A9C3" KeyPath="yes" Source="$(var.HarvestPath)\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll" />
<Component Id="cmpB4829D29933143FC7EC41E4416454794" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6B74A4B5A77BC2B6A9A4E9458ADAF7BC" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\comerr64.dll" />
</Component>
<Component Id="cmp750EBC38286A873E4C3BBA64ECB0A0C0" Directory="INSTALLDIR" Guid="*">
<File Id="filC742D9DA360AA7D42283721603B1FF2B" KeyPath="yes" Source="$(var.HarvestPath)\ZstdSharp.dll" />
<Component Id="cmpBE76B38E37DAD55259395A40A5E535B4" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filD581E057E06FAB8FF99FA8F3ABD091D6" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\ConsoleControl.dll" />
</Component>
<Component Id="cmp6E272AFE23CB4F168D530F0D9F506CC1" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil98BE0AB9E106949745E0A8E6F2997799" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\ConsoleControlAPI.dll" />
</Component>
<Component Id="cmp2710E61893A487A8905367F8C453C97A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil64C8BAD21EBE23E8DCC0BB5925D918C9" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Cucumber.Messages.dll" />
</Component>
<Component Id="cmp7490A8F9A8DB3A624A5D8CB9577798B6" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6F297ECD4F58F89504D1FF9A059DCAED" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Google.Protobuf.dll" />
</Component>
<Component Id="cmp7295E4BBDC615071A838C1406E0FF4EB" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil03838243C7803F6B3F8FB33DD6D38927" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\gssapi64.dll" />
</Component>
<Component Id="cmp9E0D8ECE60952A26FCA591AB778731B6" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filB6F1F0BA44CAF93DCFEEED23A13ABE30" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\K4os.Compression.LZ4.dll" />
</Component>
<Component Id="cmpB2133070D079CC87A6208B6590DB2889" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil43ECC17F02B604E4873F7CFABE4296CA" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\K4os.Compression.LZ4.Streams.dll" />
</Component>
<Component Id="cmpEEE8E51C8F1C8B526D04932D83120CB8" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil72BBC02583F7073E863073BA27C4EE71" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\K4os.Hash.xxHash.dll" />
</Component>
<Component Id="cmpC9301BE7C3B3BAECF38A4CB9A0016C54" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil51E3639CAA2A191FECC60E4594677BD0" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\k5sprt64.dll" />
</Component>
<Component Id="cmp78EA30E901FD3837AC02E16ABDC027A3" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil79C20A47538657AA9F0BBBF6D8D49D58" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\krb5_64.dll" />
</Component>
<Component Id="cmp63A6483817552D7BD73E83A9F114372D" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filD91BF289298C520CD2C4CD2F83919C31" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\krbcc64.dll" />
</Component>
<Component Id="cmpD9B5822311AC53B29E53974541779BD7" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil244270BF738D34D2DFD126BD36189DBE" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\LiteDB.dll" />
</Component>
<Component Id="cmpB4D15D56199032BB587B2830A03BBFD2" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filF792872055326743DF87147B6E835CFD" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\log4net.dll" />
</Component>
<Component Id="cmp9917D4F6F1CFA85CA7D6B773A88AE02B" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filB7C6959504CEE541DBB2480F74184BE5" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Bcl.AsyncInterfaces.dll" />
</Component>
<Component Id="cmpDE93C6C046C09333D8D20B7987D6C7BE" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil0B2A0DBEB96CCDBD8CA51070E23C23E8" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Bcl.Cryptography.dll" />
</Component>
<Component Id="cmpF7C5C60A7BECEDFF1243E72AACAEAB27" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil191CE288914BEE06A0EA1A23F7E5B77D" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Data.SqlClient.dll" />
</Component>
<Component Id="cmp6EAB18C07FA2633DE7C6E741F22BF7EC" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filE5067B2FFE87F33030F3A4AC0A17C8F9" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Data.SqlClient.resources.dll" />
</Component>
<Component Id="cmp33223CAFD15AEABE0174D8AD111128DB" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6621C9FE5ACC356D0C07513D6D72A763" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Data.SqlClient.SNI.dll" />
</Component>
<Component Id="cmpFB8753E0B4E25B8D2D4CDD1B68F94663" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil82E31B3771ED18205B908DD7CDBE7169" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Caching.Abstractions.dll" />
</Component>
<Component Id="cmp026BAD348742917C283F0D65B1DD880A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6B8FB41418DE71F26D8CEF98775125F4" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Caching.Memory.dll" />
</Component>
<Component Id="cmp7AF5E15A541EA9AFFFE8D07682F22555" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil443EC1DF7E4E7D04E410E950FC668F43" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Configuration.Abstractions.dll" />
</Component>
<Component Id="cmpD87041C19E9D0870B92A04C306C697D1" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil956371BA5FD20017BFC7B3E17E1669CE" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Configuration.dll" />
</Component>
<Component Id="cmp646D2DA3407CC52FFA5557594F4ACD8E" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil076D1B3FB5D94B3AB8E492882DE1CD61" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Configuration.FileExtensions.dll" />
</Component>
<Component Id="cmp97E28384D6C66AB3A9E8BD2444C9454E" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil1B2672335341208ADC6360CB16726721" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Configuration.Json.dll" />
</Component>
<Component Id="cmp53C4A27E91795A046145AB2764E6A233" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filBFD012005A78DC66834C9B7672A8F42C" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Configuration.UserSecrets.dll" />
</Component>
<Component Id="cmp8E31AD8F10904C49BA3AA464F412816A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil296C2F066282F243B381F46490F95DA5" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.DependencyInjection.Abstractions.dll" />
</Component>
<Component Id="cmpB590A2EF65E8C6BA0D8E8A9A00EE50B3" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filCBE1F729C91EE76D3EFA60A17451836F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.FileProviders.Abstractions.dll" />
</Component>
<Component Id="cmpB16C767899E06180DA057163B9E460D3" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil7E480EBC58594DFE1E465DCCF58F4575" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.FileProviders.Physical.dll" />
</Component>
<Component Id="cmp672C0FBC4F8F2EB798E13647574B2B11" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil2108085CCC3B5660A67341226AC34186" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.FileSystemGlobbing.dll" />
</Component>
<Component Id="cmpD30512E8376538C3792617D07BFD8B2F" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil9BB19D60D34D2ABB3E2D2B84D9AE7E6F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Logging.Abstractions.dll" />
</Component>
<Component Id="cmpA9D110B7749E7406E19CB6F5063AFA81" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil68C352326AA07DBC42D4A73F1F52B5FB" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Options.dll" />
</Component>
<Component Id="cmp485B60646E8AD7AD35F595367BA67B29" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil305E974ACE3243277235618C8BF9EB57" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Extensions.Primitives.dll" />
</Component>
<Component Id="cmp50D23688AEDD23EC60BDC4CA00BB9238" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil9FA7A93D599277E3B180E43BE7AA48E3" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Identity.Client.dll" />
</Component>
<Component Id="cmp954EF047031A00AB32108DA2D0523B8B" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6DC415A72CA99F2965DB52C619456D92" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Identity.Client.Extensions.Msal.dll" />
</Component>
<Component Id="cmp79B2F0757F8918DF1D4FE564F6F2846A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil11C1829EF31C6F98418267E84B572C9E" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.Abstractions.dll" />
</Component>
<Component Id="cmp94206CF5F878895658F36E8E034ACC0F" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil520FDFF0498D48F8CE4E2CB59F5A8088" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.JsonWebTokens.dll" />
</Component>
<Component Id="cmpD06122FDC02208187F55FE5E69D81AA2" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil1E5D6273928DDBDAA3C0414C760D469E" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.Logging.dll" />
</Component>
<Component Id="cmp2CC069E406B3B97B637C006AFA03009E" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil7BEEC6300AECC434F327294103B0E047" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.Protocols.dll" />
</Component>
<Component Id="cmp8AF197209A73DC8514EFE654FB86C126" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil01A47526250B7DD67B6156E947F29347" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" />
</Component>
<Component Id="cmpE7EE18952442865DB0D12C55F8804239" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil8BB5BFEE5F20C35BD23DFE2E112ECE15" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.IdentityModel.Tokens.dll" />
</Component>
<Component Id="cmp2B1E902B12192B8A03A50280FC4C406C" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil5B8243120A429900E04F175CC9A9D676" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.SqlServer.Server.dll" />
</Component>
<Component Id="cmp6DDF5D90EE104011970A9D3625C1804F" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil0D4443CDCAFF6BDC591DBBA69D5773D8" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Win32.SystemEvents.dll" />
</Component>
<Component Id="cmp71DFBF24555A1B1EB7CEAF528F4CC164" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filA4A8DBDB19DC67DC5F713D4B7081539B" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.WindowsAPICodePack.dll" />
</Component>
<Component Id="cmp5E2BFB24AA7B3EDC066B2B2A98692803" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filD4F58C78C296BDDD0AA0DC550B54C488" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.WindowsAPICodePack.Shell.dll" />
</Component>
<Component Id="cmpD031491E2D2A0B66927CBD9A768EBF38" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil23955F19633C7E79DC0FC3D52653DBF9" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Microsoft.Xaml.Behaviors.dll" />
</Component>
<Component Id="cmpA37CFA3604156A8B34BE57802B077EFD" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil4F406B659298EAAC4741B966EF68B5EC" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\MySql.Data.dll" />
</Component>
<Component Id="cmpF9AB2384BF489D4C04293854CA6968A1" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil278E1AA2D9F9D520CFBBDD57ACBA4B82" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Newtonsoft.Json.dll" />
</Component>
<Component Id="cmp0B1D954663957EC625C5EE7C1943073E" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filD0B916E45C4C0C6873C31034761313EC" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Newtonsoft.Json.Schema.dll" />
</Component>
<Component Id="cmp3241485205830DB376DB66B9155B346A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil1EEA40DAC8EF878C897419A71FBDD28F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Renci.SshNet.Async.dll" />
</Component>
<Component Id="cmp361EEE77E5E353ED53980C78A77F1C68" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filC15EAFA12C6336D8B6BAAE8FA62A711B" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\Renci.SshNet.dll" />
</Component>
<Component Id="cmpEAB2A41DC1BE84F912D8BE4CD73EAE5E" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filB6EBBBBF7EC22173E39849A570D2D67F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.ClientModel.dll" />
</Component>
<Component Id="cmp7FAF50FD8200AF236A928345A61AAEF0" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filE41EE8C1EF32CFB6D2172C7A7865668F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.CodeDom.dll" />
</Component>
<Component Id="cmpAE0E8F321CC9B105BFD21A01BFAFB4A9" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filB7799F11B9109EE9A930AA4E657B581F" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Configuration.ConfigurationManager.dll" />
</Component>
<Component Id="cmp8B9201781C616B2EF8F835BA72B27F0D" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filC4F812D5888AB492B912C79A224F3825" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Diagnostics.EventLog.dll" />
</Component>
<Component Id="cmpAF6590CFC3A5C5503D6C94BD50984569" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil8EB9B0E9BC1497463CD9860452265A25" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.DirectoryServices.dll" />
</Component>
<Component Id="cmp0C28E1D2E89936924959271729D6582A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil6B1CE3A32E22D5E559AE970D6CECB76C" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Drawing.Common.dll" />
</Component>
<Component Id="cmp4ECF0365704F485E62712C4561DEA7FC" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filBE8DADF0BDDEC13E578FD2E7031E1CE0" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.IdentityModel.Tokens.Jwt.dll" />
</Component>
<Component Id="cmp765254F61ED5981D44DB72A18E36D9D1" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filF3F6DF2D110B96611FAE039862905B4A" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Management.dll" />
</Component>
<Component Id="cmp198317622D63214A867378FCBA129144" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filB2395BA4B3975CB154E2711802CD59A0" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Memory.Data.dll" />
</Component>
<Component Id="cmp60A16FDE1EAE14F5A1CEAA1BFC4FB65A" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filC64EA4B6EF173B573B3DDB6845EC5FA1" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Private.Windows.Core.dll" />
</Component>
<Component Id="cmp8F9D2B732EE7F0A04391DCC6BF71B52D" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil8F7A79587C3F410C47D974EBE29C8D97" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Security.Cryptography.ProtectedData.dll" />
</Component>
<Component Id="cmp60C882C96CD1F5397DFC88C9DC8EF72F" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil38022ADBF50CCC2A74B20EB600274DE8" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Security.Permissions.dll" />
</Component>
<Component Id="cmp181AE9701D7B0929C82B9088EA679DD2" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil40CFB266222E83AA8796D378E810D9FE" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\System.Windows.Extensions.dll" />
</Component>
<Component Id="cmp91AF0DA940C0C1686EBEA00C42E97303" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="filAE1365C3205BCB5594D58106D66B0EBC" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\VncSharpCore.dll" />
</Component>
<Component Id="cmp9E24C15B81969DD04B9D2D35F3A3EFF6" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil280111F43B2FB1D062E5AEB78B2D53BF" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\WebView2Loader.dll" />
</Component>
<Component Id="cmp11FFAF95904071E52790E377E23B47C1" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil42CEF2B72408D855B173AC40AD44B92A" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\WeifenLuo.WinFormsUI.Docking.dll" />
</Component>
<Component Id="cmpEFD196E1AC0274FE0E2FBA1F995C5DDB" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil4FD3E8C024852C1F69233E96C40C4012" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll" />
</Component>
<Component Id="cmp8185C79E13C1EFA435B800A0FF338B21" Directory="dirEA5DE0DA87CCDD60F4B26843B622260F" Guid="*">
<File Id="fil297D1B904F44B56D02D2493BD7046664" KeyPath="yes" Source="$(var.HarvestPath)\Assemblies\ZstdSharp.dll" />
</Component>
<Component Id="cmp46A31C5C8F6C32D00394B76FC10B878C" Directory="dir82972532CA27BEF6B972C3A142E19BC1" Guid="*">
<File Id="fil1BBD62B8CC672D965BD8B093F72F7E70" KeyPath="yes" Source="$(var.HarvestPath)\cs-CZ\mRemoteNG.resources.dll" />
@@ -413,66 +507,9 @@
<Component Id="cmp14F9A7840D91A07FE79D6C6258D5872E" Directory="dirF7C0BEA86C276F53E8C9E8E6B2629A9B" Guid="*">
<File Id="fil84ABB736DDC19CD359E8850BB51959F7" KeyPath="yes" Source="$(var.HarvestPath)\ru\mRemoteNG.resources.dll" />
</Component>
<Component Id="cmp7635C502DC876B05DDEB7FC9A620439B" Directory="dir3343AB26ECE25937FAE012D89E85FEA6" Guid="*">
<File Id="fil0E6626F780C90042A2722287044D594E" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\browser\lib\net6.0\System.Text.Encodings.Web.dll" />
</Component>
<Component Id="cmpC8D403F170EFC62EECE44C445A7B9620" Directory="dir790BB27D6E4F5B6A95574FBBC538D98F" Guid="*">
<File Id="fil7C71A0764E46EF94AD4F4DFC7156A272" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\unix\lib\netcoreapp2.1\System.Data.SqlClient.dll" />
</Component>
<Component Id="cmp633F33808FFBCD54AF788C35850E01D0" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="fil6214125EB16B807C5B3466D66508A28B" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.Diagnostics.EventLog.Messages.dll" />
</Component>
<Component Id="cmp4A694FE3C25E727C7FB19FC5ACE56B5B" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="fil2A4239AC9CDDC051C8DE0B5443C897F4" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.DirectoryServices.dll" />
</Component>
<Component Id="cmp91B9CC4193A542A5C6A10A1F52FC6AAA" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="fil83862DF820A12865A856EA0ACAE72D3D" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.Management.dll" />
</Component>
<Component Id="cmpBC527D75A4FCD617B283EC01CA791087" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="filEA77B03B411C8118F973FFE3A696C5DF" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.Security.AccessControl.dll" />
</Component>
<Component Id="cmp2EF13849549BB28C1D3D3EE54843DA55" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="filF04019D415BED849794F465BCB002A38" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.Text.Encoding.CodePages.dll" />
</Component>
<Component Id="cmpCD1BCC81A9E46FC8DB9C7C64E44D4B86" Directory="dir9B4F0782CF9942D78104F206EFA81030" Guid="*">
<File Id="fil3D25C46CFA411E6515BC358806AD19FD" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\net6.0\System.Windows.Extensions.dll" />
</Component>
<Component Id="cmpB2739C20C1F19D6173B79D6CF660EBAE" Directory="dir2C3D76D932FEC38ECE3CF992C9052F22" Guid="*">
<File Id="filDCA7AAABA4EC944A3EC1AABC37332413" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll" />
</Component>
<Component Id="cmpDB52D535706748FF09DC16ED0CA3EF67" Directory="dir8DE1CAE5F6B03F7A6BAE17D4E78639BA" Guid="*">
<File Id="fil0493B7B320B8E5CF10EA5A78387A4BE9" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-arm64\native\sni.dll" />
</Component>
<Component Id="cmpBBD0399A2C7020A0BFFB886996B79169" Directory="dir8DE1CAE5F6B03F7A6BAE17D4E78639BA" Guid="*">
<File Id="fil7E9426B7CDAEEE105D4AEA1A60251BCB" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-arm64\native\WebView2Loader.dll" />
</Component>
<Component Id="cmpCDE072B46B634B7D20CA56645D07A3FA" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil5840C3B26F389B2B2460E6151CB42740" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\comerr64.dll" />
</Component>
<Component Id="cmp7A0E90A912AE47F5379F918D036D325F" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil600A01FA27BEFA498E1F25DB2EF59AF2" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\gssapi64.dll" />
</Component>
<Component Id="cmp381776BBC535C94543EBFFF73A80CEF2" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil38AD21EC1C1C73CF5EC9F3FD2E4DFF61" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\k5sprt64.dll" />
</Component>
<Component Id="cmpBB8D67E2AF8E260C197D02D6CFC044BF" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil93A323080EA8328D12496E9F0ED8145D" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\krb5_64.dll" />
</Component>
<Component Id="cmp6A7E12DD60C1A1C7DD4C714876DD4338" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="filFB98DA2C736FBFF22876E65758DA5604" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\krbcc64.dll" />
</Component>
<Component Id="cmpFAFA9D64A2B1D8B66ACB1C2D958C9DC5" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil1352EAE0A6DCBF023872C40101DB9BB1" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\sni.dll" />
</Component>
<Component Id="cmpA94B75651045F785CCA29EE2638258AF" Directory="dir2ED89DAEE76564AD33DB582F055A5274" Guid="*">
<File Id="fil4CB4D838CA0B7A043E05392D9F7C1E94" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x64\native\WebView2Loader.dll" />
</Component>
<Component Id="cmp320962FC6534F4036FFF98F41E83D11F" Directory="dir141099046F4229F01C3B534ABFD3E870" Guid="*">
<File Id="filDBEF9ECE0A5B2CDE1B08874749F8DF6E" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x86\native\sni.dll" />
</Component>
<Component Id="cmpAB864564FF3651C4D146E03D87252A7A" Directory="dir141099046F4229F01C3B534ABFD3E870" Guid="*">
<File Id="filCCD5DC5D40C6AB535B6AC22051603CB5" KeyPath="yes" Source="$(var.HarvestPath)\runtimes\win-x86\native\WebView2Loader.dll" />
</Component>
<Component Id="cmp33BB9F0091C56A034105A47C3035D1A9" Directory="dir54B0732D1EC7055747BB11A9069B5872" Guid="*">
<File Id="fil518DA4E8D2E5F7E1FEF6055DD9BB727E" KeyPath="yes" Source="$(var.HarvestPath)\Schemas\mremoteng_confcons_v2_8.xsd" />
</Component>
@@ -482,6 +519,9 @@
<Component Id="cmp6FE9FEDBE5634AF395230BA8D500104A" Directory="dir54B0732D1EC7055747BB11A9069B5872" Guid="*">
<File Id="fil07B6D1F679673392A00E25C468ED6A7F" KeyPath="yes" Source="$(var.HarvestPath)\Schemas\mremoteng_creds_v1_0.xsd" />
</Component>
<Component Id="cmp3EE433F9C5D50BC91EC94364EE71FD25" Directory="dir54B0732D1EC7055747BB11A9069B5872" Guid="*">
<File Id="fil0E2B1639DA1C4573982DEA27205D6130" KeyPath="yes" Source="$(var.HarvestPath)\Schemas\mremoteng_default_settings_v1_0.json" />
</Component>
<Component Id="cmpCE8CCE2E57CBB8B72D37C8F6606FC1FD" Directory="dir861F6A02C2F7A7DA6955E64037179011" Guid="*">
<File Id="fil06AD4DEB76585AD17235CA4874291457" KeyPath="yes" Source="$(var.HarvestPath)\sv-SE\mRemoteNG.resources.dll" />
</Component>
@@ -511,84 +551,14 @@
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="dirF3038242710747884E86633F9CAF9B21">
<Directory Id="dir141099046F4229F01C3B534ABFD3E870" Name="native" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirF78421D30AE78B84FBB1AF80F70209FC">
<Directory Id="dir2C3D76D932FEC38ECE3CF992C9052F22" Name="netcoreapp2.1" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dir2C3E5AEEB2F7196C5A6FEEA1F79147DA" Name="win" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir98D160BE690DB35BE57FFB8F3DCF5AC7">
<Directory Id="dir2ED89DAEE76564AD33DB582F055A5274" Name="native" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFD166E52A028FE9E6A0E30DBB962FCAC">
<Directory Id="dir3343AB26ECE25937FAE012D89E85FEA6" Name="net6.0" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dir692F261A19072496104689C79337C208" Name="browser" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir7D751612140E64D275382A8E09372899">
<Directory Id="dir6C30D04BD96F620328AC9AAA5E4B0F9B" Name="lib" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir6C30D04BD96F620328AC9AAA5E4B0F9B">
<Directory Id="dir790BB27D6E4F5B6A95574FBBC538D98F" Name="netcoreapp2.1" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dir7D751612140E64D275382A8E09372899" Name="unix" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dir85A01EEDCA388CEBE492AC128D8D37CC" Name="win-arm64" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir85A01EEDCA388CEBE492AC128D8D37CC">
<Directory Id="dir8DE1CAE5F6B03F7A6BAE17D4E78639BA" Name="native" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dir98D160BE690DB35BE57FFB8F3DCF5AC7" Name="win-x64" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirF78421D30AE78B84FBB1AF80F70209FC">
<Directory Id="dir9B4F0782CF9942D78104F206EFA81030" Name="net6.0" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirB699B779DD859CB7CAD46DA4BC9017C0">
<Directory Id="dirF3038242710747884E86633F9CAF9B21" Name="win-x86" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir2C3E5AEEB2F7196C5A6FEEA1F79147DA">
<Directory Id="dirF78421D30AE78B84FBB1AF80F70209FC" Name="lib" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir692F261A19072496104689C79337C208">
<Directory Id="dirFD166E52A028FE9E6A0E30DBB962FCAC" Name="lib" />
</DirectoryRef>
</Fragment>
</Wix>

View File

@@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<TargetFramework>net9.0-windows7.0</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<Platforms>x64</Platforms>
@@ -10,83 +9,77 @@
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Properties\**" />
<EmbeddedResource Remove="Properties\**" />
<None Remove="Properties\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />
<PackageReference Include="Cucumber.Messages" Version="27.0.2" />
<PackageReference Include="Gherkin" Version="32.0.0" />
<PackageReference Include="Google.Protobuf" Version="3.29.3" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.2" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="9.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
<PackageReference Include="Microsoft.NETCore.Targets" Version="5.0.0" />
<PackageReference Include="NETStandard.Library" Version="2.0.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NUnit" Version="4.3.2" />
<PackageReference Include="NUnit.Console" Version="3.19.2" />
<PackageReference Include="NUnit.ConsoleRunner" Version="3.19.2" />
<PackageReference Include="NUnit.Extension.TeamCityEventListener" Version="1.0.9" />
<PackageReference Include="NUnit.Runners" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.native.System" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Data.SqlClient.sni" Version="4.7.0" />
<PackageReference Include="runtime.native.System.IO.Compression" Version="4.3.2" />
<PackageReference Include="runtime.native.System.Net.Http" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="SpecFlow" Version="3.9.74" />
<PackageReference Include="SpecFlow.NUnit" Version="3.9.74" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Collections.Immutable" Version="9.0.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.2" />
<PackageReference Include="System.Console" Version="4.3.1" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.2" />
<PackageReference Include="System.Diagnostics.EventLog" Version="9.0.2" />
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
<PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.2" />
<PackageReference Include="System.IO.Pipelines" Version="9.0.2" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Net.Primitives" Version="4.3.1" />
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
<PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageReference Include="System.Reflection.Metadata" Version="9.0.2" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.7.0" />
<PackageReference Include="System.Runtime" Version="4.3.1" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.1" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
<PackageReference Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
<PackageReference Include="System.Security.Permissions" Version="9.0.2" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.2" />
<PackageReference Include="System.Text.Json" Version="9.0.2" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.0" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="System.Windows.Extensions" Version="9.0.2" />
<PackageReference Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageReference Include="ZstdSharp.Port" Version="0.8.4" />
<PackageReference Include="BouncyCastle.Cryptography" />
<PackageReference Include="Cucumber.Messages" />
<PackageReference Include="Gherkin" />
<PackageReference Include="Google.Protobuf" />
<PackageReference Include="Microsoft.Data.SqlClient.SNI" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Microsoft.NETCore.Platforms" />
<PackageReference Include="Microsoft.NETCore.Targets" />
<PackageReference Include="NETStandard.Library" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit.Console" />
<PackageReference Include="NUnit.ConsoleRunner" />
<PackageReference Include="NUnit.Extension.TeamCityEventListener" />
<PackageReference Include="NUnit.Runners" />
<PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.native.System" />
<PackageReference Include="runtime.native.System.IO.Compression" />
<PackageReference Include="runtime.native.System.Net.Http" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Configuration.ConfigurationManager" />
<PackageReference Include="System.Console" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
<PackageReference Include="System.Diagnostics.EventLog" />
<PackageReference Include="System.Drawing.Common" />
<PackageReference Include="System.Dynamic.Runtime" />
<PackageReference Include="System.Formats.Asn1" />
<PackageReference Include="System.IO.Pipelines" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Net.Http" />
<PackageReference Include="System.Net.Primitives" />
<PackageReference Include="System.Net.Sockets" />
<PackageReference Include="System.Reflection.Emit" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" />
<PackageReference Include="System.Reflection.Emit.Lightweight" />
<PackageReference Include="System.Reflection.Metadata" />
<PackageReference Include="System.Reflection.TypeExtensions" />
<PackageReference Include="System.Runtime" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Runtime.Extensions" />
<PackageReference Include="System.Security.Cryptography.Algorithms" />
<PackageReference Include="System.Security.Cryptography.Cng" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" />
<PackageReference Include="System.Security.Permissions" />
<PackageReference Include="System.Text.Encoding.CodePages" />
<PackageReference Include="System.Text.Json" />
<PackageReference Include="System.Text.RegularExpressions" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<PackageReference Include="System.ValueTuple" />
<PackageReference Include="System.Windows.Extensions" />
<PackageReference Include="System.Xml.ReaderWriter" />
<PackageReference Include="ZstdSharp.Port" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\mRemoteNG\mRemoteNG.csproj" />
</ItemGroup>
</Project>

View File

@@ -19,7 +19,8 @@ public class CredentialHarvesterTests
private CredentialHarvester _credentialHarvester;
private ICryptographyProvider _cryptographyProvider;
private SecureString _key;
private SecureString _password = "mypass".ConvertToSecureString();
//private SecureString _password = "mypass".ConvertToSecureString();
private string _password = "mypass";
[SetUp]
public void Setup()
{
@@ -52,7 +53,8 @@ public class CredentialHarvesterTests
var connection = new ConnectionInfo { Username = "myuser", Domain = "somedomain", Password = _password };
var xdoc = CreateTestData(connection);
var credentials = _credentialHarvester.Harvest(xdoc, _key);
Assert.That(credentials.Single().Password.ConvertToUnsecureString(), Is.EqualTo(connection.Password.ConvertToUnsecureString()));
//Assert.That(credentials.Single().Password.ConvertToUnsecureString(), Is.EqualTo(connection.Password.ConvertToUnsecureString()));
Assert.That(credentials.Single().Password.ConvertToUnsecureString(), Is.EqualTo(connection.Password));
}
[Test]

View File

@@ -73,7 +73,8 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
Icon = "SomeIcon",
Panel = "SomePanel",
Username = "SomeUsername",
Password = "SomePassword".ConvertToSecureString(),
//Password = "SomePassword".ConvertToSecureString(),
Password = "SomePassword",
Domain = "SomeDomain",
Hostname = "SomeHostname",
PuttySession = "SomePuttySession",

View File

@@ -113,7 +113,8 @@ public class CsvConnectionsSerializerMremotengFormatTests
Assert.That(csv, Does.Match(container.Name));
Assert.That(csv, Does.Match(container.Username));
Assert.That(csv, Does.Match(container.Domain));
Assert.That(csv, Does.Match(container.Password?.ConvertToUnsecureString()));
//Assert.That(csv, Does.Match(container.Password?.ConvertToUnsecureString()));
Assert.That(csv, Does.Match(container.Password));
Assert.That(csv, Does.Contain(TreeNodeType.Container.ToString()));
}
@@ -128,7 +129,8 @@ public class CsvConnectionsSerializerMremotengFormatTests
.First(s => s.Contains(serializationTarget.Name));
Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Username));
Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Domain));
Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Password?.ConvertToUnsecureString()));
//Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Password?.ConvertToUnsecureString()));
Assert.That(lineWithFolder3, Does.Contain(serializationTarget.Password));
}
private ConnectionInfo BuildConnectionInfo()
@@ -138,7 +140,8 @@ public class CsvConnectionsSerializerMremotengFormatTests
Name = ConnectionName,
Username = Username,
Domain = Domain,
Password = Password?.ConvertToSecureString(),
//Password = Password?.ConvertToSecureString(),
Password = Password,
Inheritance = { Colors = true }
};
}
@@ -150,7 +153,8 @@ public class CsvConnectionsSerializerMremotengFormatTests
Name = "MyFolder",
Username = "BlahBlah1",
Domain = "aklkskkksh8",
Password = "qweraslkdjf87".ConvertToSecureString()
//Password = "qweraslkdjf87".ConvertToSecureString()
Password = "qweraslkdjf87"
};
}
}

View File

@@ -100,7 +100,8 @@ public class PuttyConnectionManagerDeserializerTests
public void ConnectionPasswordImported()
{
var connection = GetSshConnection();
Assert.That(connection.Password?.ConvertToUnsecureString(), Is.EqualTo(ExpectedConnectionPassword));
//Assert.That(connection.Password?.ConvertToUnsecureString(), Is.EqualTo(ExpectedConnectionPassword));
Assert.That(connection.Password, Is.EqualTo(ExpectedConnectionPassword));
}
private ConnectionInfo GetSshConnection()

View File

@@ -94,7 +94,8 @@ public class AbstractConnectionInfoDataTests
{
var wasCalled = false;
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
_testAbstractConnectionInfoData.Password = "a".ConvertToSecureString();
//_testAbstractConnectionInfoData.Password = "a".ConvertToSecureString();
_testAbstractConnectionInfoData.Password = "a";
Assert.That(wasCalled, Is.True);
}

View File

@@ -23,8 +23,10 @@ namespace mRemoteNGTests.TestHelpers
{
var model = new ConnectionTreeModel();
var root = new RootNodeInfo(RootNodeType.Connection);
var folder1 = new ContainerInfo { Name = "folder1", Username = "user1", Domain = "domain1", Password = "password1".ConvertToSecureString() };
var folder2 = new ContainerInfo { Name = "folder2", Username = "user2", Domain = "domain2", Password = "password2".ConvertToSecureString() };
//var folder1 = new ContainerInfo { Name = "folder1", Username = "user1", Domain = "domain1", Password = "password1".ConvertToSecureString() };
//var folder2 = new ContainerInfo { Name = "folder2", Username = "user2", Domain = "domain2", Password = "password2".ConvertToSecureString() };
var folder1 = new ContainerInfo { Name = "folder1", Username = "user1", Domain = "domain1", Password = "password1" };
var folder2 = new ContainerInfo { Name = "folder2", Username = "user2", Domain = "domain2", Password = "password2" };
var folder3 = new ContainerInfo
{
Name = "folder3",
@@ -35,8 +37,10 @@ namespace mRemoteNGTests.TestHelpers
Password = true
}
};
var con1 = new ConnectionInfo { Name = "Con1", Username = "user1", Domain = "domain1", Password = "password1".ConvertToSecureString() };
var con2 = new ConnectionInfo { Name = "Con2", Username = "user2", Domain = "domain2", Password = "password2".ConvertToSecureString() };
//var con1 = new ConnectionInfo { Name = "Con1", Username = "user1", Domain = "domain1", Password = "password1".ConvertToSecureString() };
//var con2 = new ConnectionInfo { Name = "Con2", Username = "user2", Domain = "domain2", Password = "password2".ConvertToSecureString() };
var con1 = new ConnectionInfo { Name = "Con1", Username = "user1", Domain = "domain1", Password = "password1" };
var con2 = new ConnectionInfo { Name = "Con2", Username = "user2", Domain = "domain2", Password = "password2" };
var con3 = new ContainerInfo
{
Name = "con3",

View File

@@ -29,7 +29,8 @@ namespace mRemoteNGTests.Tools
Hostname = TestString,
Port = Port,
Username = TestString,
Password = TestString.ConvertToSecureString(),
//Password = TestString.ConvertToSecureString(),
Password = TestString,
Domain = TestString,
Description = TestString,
MacAddress = TestString,

View File

@@ -1,86 +1,76 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<TargetFramework>net9.0-windows7.0</TargetFramework>
<LangVersion>preview</LangVersion>
<IsPackable>false</IsPackable>
<Platforms>x64</Platforms>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<Configurations>Debug;Release;Debug Portable;Release Portable;Release Installer;Deploy to github</Configurations>
<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.29.3" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
<PackageReference Include="Microsoft.NETCore.Targets" Version="5.0.0" />
<PackageReference Include="NETStandard.Library" Version="2.0.3" />
<PackageReference Include="NSubstitute" Version="5.3.0" />
<PackageReference Include="NUnit" Version="4.3.2" />
<PackageReference Include="NUnit.Console" Version="3.19.2" />
<PackageReference Include="NUnit.ConsoleRunner" Version="3.19.2" />
<PackageReference Include="NUnit.Extension.TeamCityEventListener" Version="1.0.9" />
<PackageReference Include="NUnit.Runners" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PackageReference Include="Google.Protobuf" />
<PackageReference Include="Microsoft.Data.SqlClient.SNI" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Microsoft.NETCore.Platforms" />
<PackageReference Include="Microsoft.NETCore.Targets" />
<PackageReference Include="NETStandard.Library" />
<PackageReference Include="NSubstitute" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit.Console" />
<PackageReference Include="NUnit.ConsoleRunner" />
<PackageReference Include="NUnit.Extension.TeamCityEventListener" />
<PackageReference Include="NUnit.Runners" />
<PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="coverlet.collector">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.native.System" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Data.SqlClient.sni" Version="4.7.0" />
<PackageReference Include="runtime.native.System.IO.Compression" Version="4.3.2" />
<PackageReference Include="runtime.native.System.Net.Http" Version="4.3.1" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Collections.Immutable" Version="9.0.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.2" />
<PackageReference Include="System.Console" Version="4.3.1" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.2" />
<PackageReference Include="System.Diagnostics.EventLog" Version="9.0.2" />
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.2" />
<PackageReference Include="System.IO.Pipelines" Version="9.0.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Net.Primitives" Version="4.3.1" />
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
<PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageReference Include="System.Reflection.Metadata" Version="9.0.2" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.1" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
<PackageReference Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
<PackageReference Include="System.Security.Permissions" Version="9.0.2" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.2" />
<PackageReference Include="System.Text.Json" Version="9.0.2" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.0" />
<PackageReference Include="System.Windows.Extensions" Version="9.0.2" />
<PackageReference Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageReference Include="ZstdSharp.Port" Version="0.8.4" />
<PackageReference Include="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.native.System" />
<PackageReference Include="runtime.native.System.IO.Compression" />
<PackageReference Include="runtime.native.System.Net.Http" />
<PackageReference Include="runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Configuration.ConfigurationManager" />
<PackageReference Include="System.Console" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
<PackageReference Include="System.Diagnostics.EventLog" />
<PackageReference Include="System.Drawing.Common" />
<PackageReference Include="System.Formats.Asn1" />
<PackageReference Include="System.IO.Pipelines" />
<PackageReference Include="System.Net.Http" />
<PackageReference Include="System.Net.Primitives" />
<PackageReference Include="System.Net.Sockets" />
<PackageReference Include="System.Reflection.Emit" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" />
<PackageReference Include="System.Reflection.Emit.Lightweight" />
<PackageReference Include="System.Reflection.Metadata" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Runtime.Extensions" />
<PackageReference Include="System.Security.Cryptography.Algorithms" />
<PackageReference Include="System.Security.Cryptography.Cng" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" />
<PackageReference Include="System.Security.Permissions" />
<PackageReference Include="System.Text.Encoding.CodePages" />
<PackageReference Include="System.Text.Json" />
<PackageReference Include="System.Text.RegularExpressions" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<PackageReference Include="System.Windows.Extensions" />
<PackageReference Include="System.Xml.ReaderWriter" />
<PackageReference Include="ZstdSharp.Port" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\mRemoteNG\mRemoteNG.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
@@ -88,12 +78,10 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
</Project>