Merge remote-tracking branch 'upstream/v1.77.3-dev' into update_build_scripts

This commit is contained in:
BlueBlock
2023-03-08 14:08:46 -05:00
35 changed files with 334 additions and 300 deletions

View File

@@ -2,6 +2,24 @@
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.77.3.1784]
### Fixed
- #2362: Fix use of sql database
- #2356: Improve speed for the display of the options page
- #2352: SSH.NET Update
- #2346: Modify "auto reconnect" to have the ability to really auto-reconnect
- #2340: Set the default theme setting
- #2339: Add 2 missing settings
- #2261: Implement Show/Hide file menu in view menu
- #2244: Save RCG and RestrictedAdmin fields correctly in connections file
### Added
- #2285: Support extraction of SSH private keys from external cred prov
- #2268: Postregsql database support
### Updated
- #2295: Updates hyperlink style to make links more visible to end users
- #2337: Set language.resx to auto generate the designer class
## [1.77.3]
### Added

View File

@@ -11,8 +11,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.Core" Version="3.7.105.11" />
<PackageReference Include="AWSSDK.EC2" Version="3.7.124.1" />
<PackageReference Include="AWSSDK.Core" Version="3.7.105.13" />
<PackageReference Include="AWSSDK.EC2" Version="3.7.125" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
</ItemGroup>

View File

@@ -20,8 +20,8 @@
<a href="https://twitter.com/mremoteng">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/mremoteng?color=%231DA1F2&label=Twitter&logo=Twitter&style=flat-square">
</a>
<a href="https://gitter.im/mRemoteNG/PublicChat">
<img alt="Gitter" src="https://img.shields.io/gitter/room/mRemoteNG/PublicChat?label=Join%20the%20Chat&logo=Gitter&style=flat-square">
<a href="https://app.element.io/#/room/#mremoteng:matrix.org">
<img alt="Element" src="https://img.shields.io/matrix/mremoteng:matrix.org?label=Join%20to%20chat%20about%20mRemoteNG&logo=element&style=social&link=https://app.element.io/#/room/#mremoteng:matrix.org">
</a>
</p>
<p align="center">
@@ -51,7 +51,7 @@
| ---------------|--------------|-----------|
| Stable | ![Build status](https://ci.appveyor.com/api/projects/status/rqwxjxldail7btcf?svg=true) | [![Github Releases (by Release)](https://img.shields.io/github/downloads/mRemoteNG/mRemoteNG/v1.76.20/total.svg)](https://github.com/mRemoteNG/mRemoteNG/releases/tag/v1.76.20) |
| Preview | ![Build status](https://ci.appveyor.com/api/projects/status/rqwxjxldail7btcf/branch/preview?svg=true) | [![Github Releases (by Release)](https://img.shields.io/github/downloads/mRemoteNG/mRemoteNG/v1.77.1/total.svg)](https://github.com/mRemoteNG/mRemoteNG/releases/tag/v1.77.1) |
| Nightly | ![Build status](https://ci.appveyor.com/api/projects/status/rqwxjxldail7btcf/branch/develop?svg=true) | [![Github Releases (by Release)](https://img.shields.io/github/downloads/mRemoteNG/mRemoteNG/2022.06.13-v1.77.3-nb/total.svg)](https://github.com/mRemoteNG/mRemoteNG/releases/tag/2022.06.13-v1.77.3-nb) |
| Nightly | ![Build status](https://ci.appveyor.com/api/projects/status/rqwxjxldail7btcf/branch/develop?svg=true) | [![Github Releases (by Release)](https://img.shields.io/github/downloads/mRemoteNG/mRemoteNG/2023.03.03-v1.77.3-nb/total.svg)](https://github.com/mRemoteNG/mRemoteNG/releases/tag/2023.03.03-v1.77.3-nb) |
## Features

View File

@@ -55,8 +55,8 @@ Format-Table -AutoSize -Wrap -InputObject @{
# }
###
& "$PSScriptRoot\set_LargeAddressAware.ps1" -TargetDir $TargetDir -TargetFileName $TargetFileName
# Currently targeting x64, shouldn't need to manually set LargeAddressAware...
#& "$PSScriptRoot\set_LargeAddressAware.ps1" -TargetDir $TargetDir -TargetFileName $TargetFileName
& "$PSScriptRoot\verify_LargeAddressAware.ps1" -TargetDir $TargetDir -TargetFileName $TargetFileName
& "$PSScriptRoot\tidy_files_for_release.ps1" -TargetDir $TargetDir -ConfigurationName $ConfigurationName

View File

@@ -9,7 +9,7 @@
$targetVersionedFile = "$SolutionDir\mRemoteNG\bin\x64\$BuildConfiguration\mRemoteNG.exe"
#$fileversion = &"$SolutionDir\Tools\exes\sigcheck.exe" /accepteula -q -n $targetVersionedFile
$prodversion = ((Get-Item -Path $targetVersionedFile).VersionInfo | Select-Object -Property ProductVersion)."ProductVersion"
$src = $SolutionDir + "mRemoteNGInstaller\Installer\bin\$BuildConfiguration\en-US\mRemoteNG-Installer.msi"
$src = $SolutionDir + "mRemoteNGInstaller\Installer\bin\x64\$BuildConfiguration\en-US\mRemoteNG-Installer.msi"
$dst = $SolutionDir + "mRemoteNG\bin\x64\$BuildConfiguration\mRemoteNG-Installer-" + $prodversion + ".msi"
# Copy file

View File

@@ -18,12 +18,7 @@ namespace mRemoteNG.App.Info
public const string UrlDocumentation = "https://mremoteng.readthedocs.io/en/latest/";
public static string ApplicationVersion = Application.ProductVersion;
public static readonly string ProductName = Application.ProductName;
public static readonly string Copyright =
((AssemblyCopyrightAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(),
typeof(AssemblyCopyrightAttribute), false))
.Copyright;
public static readonly string Copyright = ((AssemblyCopyrightAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyCopyrightAttribute), false)).Copyright;
public static readonly string HomePath = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location);
//public static string ReportingFilePath = "";

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Connection;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;
using mRemoteNG.Connection.Protocol.Http;

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Security;
using Connection;
using mRemoteNG.App;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;

View File

@@ -18,7 +18,6 @@ using mRemoteNG.Tree.Root;
using mRemoteNG.UI.Forms;
using mRemoteNG.UI.TaskDialog;
using mRemoteNG.Resources.Language;
using Connection;
namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
{

View File

@@ -8,7 +8,6 @@ using mRemoteNG.Properties;
using mRemoteNG.Tools;
using mRemoteNG.Tools.Attributes;
using mRemoteNG.Resources.Language;
using Connection;
namespace mRemoteNG.Connection
{

View File

@@ -18,7 +18,6 @@ using mRemoteNG.Properties;
using mRemoteNG.Tree;
using mRemoteNG.Resources.Language;
using mRemoteNG.Tree.Root;
using Connection;
namespace mRemoteNG.Connection
{

View File

@@ -1,7 +1,7 @@
using mRemoteNG.Resources.Language;
using mRemoteNG.Tools;
namespace Connection
namespace mRemoteNG.Connection
{
public enum ExternalAddressProvider
{

View File

@@ -1,7 +1,7 @@
using mRemoteNG.Resources.Language;
using mRemoteNG.Tools;
namespace Connection
namespace mRemoteNG.Connection
{
public enum ExternalCredentialProvider
{

View File

@@ -11,7 +11,6 @@ using System.Threading;
using System.Windows.Forms;
using mRemoteNG.Properties;
using mRemoteNG.Resources.Language;
using Connection;
using System.IO;
// ReSharper disable ArrangeAccessorOwnerBody

View File

@@ -15,7 +15,6 @@ using mRemoteNG.UI.Forms;
using mRemoteNG.UI.Tabs;
using MSTSCLib;
using mRemoteNG.Resources.Language;
using Connection;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using System.DirectoryServices.ActiveDirectory;

View File

@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Resources;
// General Information
[assembly: AssemblyTitle("mRemoteNG")]
[assembly: AssemblyDescription("Multi-Remote Next Generation Connection Manager")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("mRemoteNG")]
[assembly: AssemblyProduct("mRemoteNG Connection Manager")]
[assembly: AssemblyCopyright("(c) 2023 mRemoteNG")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information
[assembly: AssemblyVersion("1.77.3.1803")]
[assembly: AssemblyFileVersion("1.77.3.1803")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
[assembly: AssemblyInformationalVersion("1.77.3 (Nightly Build: 1803)")]

View File

@@ -0,0 +1,47 @@
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ output extension=".cs" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#
string output = File.ReadAllText(this.Host.ResolvePath("AssemblyInfo.cs"));
Regex pattern = new Regex("AssemblyVersion\\(\"(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<revision>\\d+)\\.(?<build>\\d+)\"\\)");
MatchCollection matches = pattern.Matches(output);
if( matches.Count == 1 )
{
major = Convert.ToInt32(matches[0].Groups["major"].Value);
minor = Convert.ToInt32(matches[0].Groups["minor"].Value);
revision = Convert.ToInt32(matches[0].Groups["revision"].Value);
build = Convert.ToInt32(matches[0].Groups["build"].Value);
if( this.Host.ResolveParameterValue("-","-","BuildConfiguration") == "Release" )
build++;
}
#>
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Resources;
// General Information
[assembly: AssemblyTitle("mRemoteNG")]
[assembly: AssemblyDescription("Multi-Remote Next Generation Connection Manager")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("mRemoteNG")]
[assembly: AssemblyProduct("mRemoteNG Connection Manager")]
[assembly: AssemblyCopyright("(c) 2023 mRemoteNG")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information
[assembly: AssemblyVersion("<#= this.major #>.<#= this.minor #>.<#= this.revision #>.<#= this.build #>")]
[assembly: AssemblyFileVersion("<#= this.major #>.<#= this.minor #>.<#= this.revision #>.<#= this.build #>")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
[assembly: AssemblyInformationalVersion("<#= this.major #>.<#= this.minor #>.<#= this.revision #> (<#= this.channel #>: <#= this.build #>)")]
<#+
int major = 1;
int minor = 77;
int revision = 3;
int build = 0;
string channel = "Nightly Build";
#>

View File

@@ -8,11 +8,12 @@
// </auto-generated>
//------------------------------------------------------------------------------
using Connection;
using mRemoteNG.Connection;
namespace mRemoteNG.Properties
{
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsCredentialsPage : global::System.Configuration.ApplicationSettingsBase {

View File

@@ -12,7 +12,7 @@ namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
internal sealed partial class rbac : global::System.Configuration.ApplicationSettingsBase {
private static rbac defaultInstance = ((rbac)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new rbac())));

View File

@@ -44,7 +44,7 @@ namespace mRemoteNG.Tools
public static Optional<SecureString> PasswordDialog(string passwordName = null, bool verify = true)
{
var splash = FrmSplashScreenNew.GetInstance();
//var splash = FrmSplashScreenNew.GetInstance();
//TODO: something not right there
//if (PresentationSource.FromVisual(splash))
// splash.Close();

View File

@@ -1,9 +1,10 @@
using System;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Threading;
using mRemoteNG.App;
using mRemoteNG.Messages;
@@ -67,7 +68,10 @@ namespace mRemoteNG.Tools
public void StartScan()
{
_scanThread = new Thread(ScanAsync);
_scanThread.SetApartmentState(ApartmentState.STA);
if(RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
_scanThread.SetApartmentState(ApartmentState.STA);
_scanThread.IsBackground = true;
_scanThread.Start();
}
@@ -79,7 +83,8 @@ namespace mRemoteNG.Tools
p.SendAsyncCancel();
}
_scanThread.Abort();
// Obsolete: https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/5.0/thread-abort-obsolete
//_scanThread.Abort();
}
public static bool IsPortOpen(string hostname, string port)

View File

@@ -17,7 +17,6 @@ using mRemoteNG.Tools;
using mRemoteNG.Tools.Attributes;
using mRemoteNG.Tree.Root;
using mRemoteNG.Resources.Language;
using Connection;
namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
{

View File

@@ -4,219 +4,220 @@ using mRemoteNG.UI.Controls;
namespace mRemoteNG.UI.Window
{
public partial class UpdateWindow
{
public partial class UpdateWindow
{
#region Windows Form Designer generated code
internal Controls.MrngLabel lblStatus;
internal Controls.MrngTextBox txtChangeLog;
internal Controls.MrngLabel lblChangeLogLabel;
internal Controls.MrngLabel lblLatestVersionLabel;
internal Controls.MrngLabel lblInstalledVersionLabel;
internal Controls.MrngLabel lblLatestVersion;
internal Controls.MrngLabel lblInstalledVersion;
internal System.Windows.Forms.PictureBox pbUpdateImage;
internal MrngButton btnCheckForUpdate;
private void InitializeComponent()
{
this.btnCheckForUpdate = new MrngButton();
this.lblChangeLogLabel = new mRemoteNG.UI.Controls.MrngLabel();
this.txtChangeLog = new mRemoteNG.UI.Controls.MrngTextBox();
this.lblStatus = new mRemoteNG.UI.Controls.MrngLabel();
this.lblLatestVersionLabel = new mRemoteNG.UI.Controls.MrngLabel();
this.lblInstalledVersionLabel = new mRemoteNG.UI.Controls.MrngLabel();
this.lblLatestVersion = new mRemoteNG.UI.Controls.MrngLabel();
this.lblInstalledVersion = new mRemoteNG.UI.Controls.MrngLabel();
this.pbUpdateImage = new System.Windows.Forms.PictureBox();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.prgbDownload = new mRemoteNG.UI.Controls.MrngProgressBar();
this.btnDownload = new MrngButton();
((System.ComponentModel.ISupportInitialize)(this.pbUpdateImage)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
internal Controls.MrngLabel lblStatus;
internal Controls.MrngTextBox txtChangeLog;
internal Controls.MrngLabel lblChangeLogLabel;
internal Controls.MrngLabel lblLatestVersionLabel;
internal Controls.MrngLabel lblInstalledVersionLabel;
internal Controls.MrngLabel lblLatestVersion;
internal Controls.MrngLabel lblInstalledVersion;
internal MrngButton btnCheckForUpdate;
private void InitializeComponent()
{
btnCheckForUpdate = new MrngButton();
lblChangeLogLabel = new MrngLabel();
txtChangeLog = new MrngTextBox();
lblStatus = new MrngLabel();
lblLatestVersionLabel = new MrngLabel();
lblInstalledVersionLabel = new MrngLabel();
lblLatestVersion = new MrngLabel();
lblInstalledVersion = new MrngLabel();
tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
btnDownload = new MrngButton();
prgbDownload = new MrngProgressBar();
pbUpdateImage = new System.Windows.Forms.PictureBox();
tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pbUpdateImage).BeginInit();
SuspendLayout();
//
// btnCheckForUpdate
//
this.btnCheckForUpdate._mice = MrngButton.MouseState.HOVER;
this.btnCheckForUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCheckForUpdate.Location = new System.Drawing.Point(3, 94);
this.btnCheckForUpdate.Name = "btnCheckForUpdate";
this.btnCheckForUpdate.Size = new System.Drawing.Size(104, 32);
this.btnCheckForUpdate.TabIndex = 5;
this.btnCheckForUpdate.Text = "Check Again";
this.btnCheckForUpdate.UseVisualStyleBackColor = true;
this.btnCheckForUpdate.Click += new System.EventHandler(this.btnCheckForUpdate_Click);
btnCheckForUpdate._mice = MrngButton.MouseState.OUT;
btnCheckForUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
btnCheckForUpdate.Location = new System.Drawing.Point(3, 94);
btnCheckForUpdate.Name = "btnCheckForUpdate";
btnCheckForUpdate.Size = new System.Drawing.Size(104, 32);
btnCheckForUpdate.TabIndex = 5;
btnCheckForUpdate.Text = "Check Again";
btnCheckForUpdate.UseVisualStyleBackColor = true;
btnCheckForUpdate.Click += btnCheckForUpdate_Click;
//
// lblChangeLogLabel
//
this.lblChangeLogLabel.AutoSize = true;
this.lblChangeLogLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblChangeLogLabel.Location = new System.Drawing.Point(3, 129);
this.lblChangeLogLabel.Name = "lblChangeLogLabel";
this.lblChangeLogLabel.Padding = new System.Windows.Forms.Padding(0, 10, 0, 0);
this.lblChangeLogLabel.Size = new System.Drawing.Size(73, 23);
this.lblChangeLogLabel.TabIndex = 0;
this.lblChangeLogLabel.Text = "Change Log:";
lblChangeLogLabel.AutoSize = true;
lblChangeLogLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
lblChangeLogLabel.Location = new System.Drawing.Point(3, 129);
lblChangeLogLabel.Name = "lblChangeLogLabel";
lblChangeLogLabel.Padding = new System.Windows.Forms.Padding(0, 10, 0, 0);
lblChangeLogLabel.Size = new System.Drawing.Size(73, 23);
lblChangeLogLabel.TabIndex = 0;
lblChangeLogLabel.Text = "Change Log:";
//
// txtChangeLog
//
this.tableLayoutPanel1.SetColumnSpan(this.txtChangeLog, 3);
this.txtChangeLog.Cursor = System.Windows.Forms.Cursors.Arrow;
this.txtChangeLog.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtChangeLog.Location = new System.Drawing.Point(3, 155);
this.txtChangeLog.Multiline = true;
this.txtChangeLog.Name = "txtChangeLog";
this.txtChangeLog.ReadOnly = true;
this.txtChangeLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txtChangeLog.Size = new System.Drawing.Size(728, 225);
this.txtChangeLog.TabIndex = 1;
this.txtChangeLog.TabStop = false;
tableLayoutPanel1.SetColumnSpan(txtChangeLog, 3);
txtChangeLog.Dock = System.Windows.Forms.DockStyle.Fill;
txtChangeLog.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
txtChangeLog.Location = new System.Drawing.Point(3, 381);
txtChangeLog.Multiline = true;
txtChangeLog.Name = "txtChangeLog";
txtChangeLog.ReadOnly = true;
txtChangeLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
txtChangeLog.Size = new System.Drawing.Size(728, 14);
txtChangeLog.TabIndex = 1;
txtChangeLog.TabStop = false;
//
// lblStatus
//
this.lblStatus.AutoSize = true;
this.tableLayoutPanel1.SetColumnSpan(this.lblStatus, 3);
this.lblStatus.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblStatus.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblStatus.Location = new System.Drawing.Point(3, 0);
this.lblStatus.Name = "lblStatus";
this.lblStatus.Padding = new System.Windows.Forms.Padding(0, 10, 0, 0);
this.lblStatus.Size = new System.Drawing.Size(57, 31);
this.lblStatus.TabIndex = 0;
this.lblStatus.Text = "Status";
this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
lblStatus.AutoSize = true;
tableLayoutPanel1.SetColumnSpan(lblStatus, 3);
lblStatus.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
lblStatus.ForeColor = System.Drawing.SystemColors.ControlText;
lblStatus.Location = new System.Drawing.Point(3, 0);
lblStatus.Name = "lblStatus";
lblStatus.Padding = new System.Windows.Forms.Padding(0, 10, 0, 0);
lblStatus.Size = new System.Drawing.Size(57, 31);
lblStatus.TabIndex = 0;
lblStatus.Text = "Status";
lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// lblLatestVersionLabel
//
this.lblLatestVersionLabel.Dock = System.Windows.Forms.DockStyle.Right;
this.lblLatestVersionLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblLatestVersionLabel.Location = new System.Drawing.Point(3, 61);
this.lblLatestVersionLabel.Name = "lblLatestVersionLabel";
this.lblLatestVersionLabel.Size = new System.Drawing.Size(120, 30);
this.lblLatestVersionLabel.TabIndex = 3;
this.lblLatestVersionLabel.Text = "Current version:";
this.lblLatestVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
lblLatestVersionLabel.Dock = System.Windows.Forms.DockStyle.Right;
lblLatestVersionLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
lblLatestVersionLabel.Location = new System.Drawing.Point(3, 61);
lblLatestVersionLabel.Name = "lblLatestVersionLabel";
lblLatestVersionLabel.Size = new System.Drawing.Size(120, 30);
lblLatestVersionLabel.TabIndex = 3;
lblLatestVersionLabel.Text = "Current version:";
lblLatestVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lblInstalledVersionLabel
//
this.lblInstalledVersionLabel.Dock = System.Windows.Forms.DockStyle.Right;
this.lblInstalledVersionLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblInstalledVersionLabel.Location = new System.Drawing.Point(3, 31);
this.lblInstalledVersionLabel.Name = "lblInstalledVersionLabel";
this.lblInstalledVersionLabel.Size = new System.Drawing.Size(120, 30);
this.lblInstalledVersionLabel.TabIndex = 1;
this.lblInstalledVersionLabel.Text = "Installed version:";
this.lblInstalledVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
lblInstalledVersionLabel.Dock = System.Windows.Forms.DockStyle.Right;
lblInstalledVersionLabel.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
lblInstalledVersionLabel.Location = new System.Drawing.Point(3, 31);
lblInstalledVersionLabel.Name = "lblInstalledVersionLabel";
lblInstalledVersionLabel.Size = new System.Drawing.Size(120, 30);
lblInstalledVersionLabel.TabIndex = 1;
lblInstalledVersionLabel.Text = "Installed version:";
lblInstalledVersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lblLatestVersion
//
this.lblLatestVersion.Dock = System.Windows.Forms.DockStyle.Left;
this.lblLatestVersion.Location = new System.Drawing.Point(129, 61);
this.lblLatestVersion.Name = "lblLatestVersion";
this.lblLatestVersion.Size = new System.Drawing.Size(104, 30);
this.lblLatestVersion.TabIndex = 4;
this.lblLatestVersion.Text = "Version";
this.lblLatestVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
lblLatestVersion.Dock = System.Windows.Forms.DockStyle.Left;
lblLatestVersion.Location = new System.Drawing.Point(129, 61);
lblLatestVersion.Name = "lblLatestVersion";
lblLatestVersion.Size = new System.Drawing.Size(166, 30);
lblLatestVersion.TabIndex = 4;
lblLatestVersion.Text = "Version";
lblLatestVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// lblInstalledVersion
//
this.lblInstalledVersion.Dock = System.Windows.Forms.DockStyle.Left;
this.lblInstalledVersion.Location = new System.Drawing.Point(129, 31);
this.lblInstalledVersion.Name = "lblInstalledVersion";
this.lblInstalledVersion.Size = new System.Drawing.Size(104, 30);
this.lblInstalledVersion.TabIndex = 2;
this.lblInstalledVersion.Text = "Version";
this.lblInstalledVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pbUpdateImage
//
this.pbUpdateImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pbUpdateImage.Cursor = System.Windows.Forms.Cursors.Hand;
this.pbUpdateImage.Dock = System.Windows.Forms.DockStyle.Fill;
this.pbUpdateImage.Location = new System.Drawing.Point(239, 34);
this.pbUpdateImage.Name = "pbUpdateImage";
this.tableLayoutPanel1.SetRowSpan(this.pbUpdateImage, 4);
this.pbUpdateImage.Size = new System.Drawing.Size(492, 115);
this.pbUpdateImage.TabIndex = 45;
this.pbUpdateImage.TabStop = false;
this.pbUpdateImage.Visible = false;
this.pbUpdateImage.Click += new System.EventHandler(this.pbUpdateImage_Click);
lblInstalledVersion.Dock = System.Windows.Forms.DockStyle.Left;
lblInstalledVersion.Location = new System.Drawing.Point(129, 31);
lblInstalledVersion.Name = "lblInstalledVersion";
lblInstalledVersion.Size = new System.Drawing.Size(166, 30);
lblInstalledVersion.TabIndex = 2;
lblInstalledVersion.Text = "Version";
lblInstalledVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Controls.Add(this.lblChangeLogLabel, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.lblStatus, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.btnCheckForUpdate, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.lblInstalledVersionLabel, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.lblLatestVersionLabel, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.lblInstalledVersion, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.lblLatestVersion, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.txtChangeLog, 0, 5);
this.tableLayoutPanel1.Controls.Add(this.btnDownload, 0, 6);
this.tableLayoutPanel1.Controls.Add(this.pbUpdateImage, 3, 1);
this.tableLayoutPanel1.Controls.Add(this.prgbDownload, 2, 6);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 7;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(734, 418);
this.tableLayoutPanel1.TabIndex = 46;
//
// prgbDownload
//
this.prgbDownload.Dock = System.Windows.Forms.DockStyle.Fill;
this.prgbDownload.Location = new System.Drawing.Point(239, 386);
this.prgbDownload.Name = "prgbDownload";
this.prgbDownload.Size = new System.Drawing.Size(492, 29);
this.prgbDownload.TabIndex = 3;
this.prgbDownload.Visible = false;
tableLayoutPanel1.ColumnCount = 3;
tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
tableLayoutPanel1.Controls.Add(lblChangeLogLabel, 0, 4);
tableLayoutPanel1.Controls.Add(lblStatus, 0, 0);
tableLayoutPanel1.Controls.Add(btnCheckForUpdate, 0, 3);
tableLayoutPanel1.Controls.Add(lblInstalledVersionLabel, 0, 1);
tableLayoutPanel1.Controls.Add(lblLatestVersionLabel, 0, 2);
tableLayoutPanel1.Controls.Add(lblInstalledVersion, 1, 1);
tableLayoutPanel1.Controls.Add(lblLatestVersion, 1, 2);
tableLayoutPanel1.Controls.Add(txtChangeLog, 0, 5);
tableLayoutPanel1.Controls.Add(btnDownload, 0, 6);
tableLayoutPanel1.Controls.Add(prgbDownload, 2, 6);
tableLayoutPanel1.Controls.Add(pbUpdateImage, 2, 3);
tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 9;
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
tableLayoutPanel1.Size = new System.Drawing.Size(734, 418);
tableLayoutPanel1.TabIndex = 46;
//
// btnDownload
//
this.btnDownload._mice = MrngButton.MouseState.HOVER;
this.tableLayoutPanel1.SetColumnSpan(this.btnDownload, 2);
this.btnDownload.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnDownload.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnDownload.Location = new System.Drawing.Point(3, 386);
this.btnDownload.Name = "btnDownload";
this.btnDownload.Size = new System.Drawing.Size(230, 29);
this.btnDownload.TabIndex = 2;
this.btnDownload.Text = "Download and Install";
this.btnDownload.UseVisualStyleBackColor = true;
this.btnDownload.Click += new System.EventHandler(this.btnDownload_Click);
btnDownload._mice = MrngButton.MouseState.OUT;
tableLayoutPanel1.SetColumnSpan(btnDownload, 2);
btnDownload.Dock = System.Windows.Forms.DockStyle.Fill;
btnDownload.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
btnDownload.Location = new System.Drawing.Point(3, 401);
btnDownload.Name = "btnDownload";
btnDownload.Size = new System.Drawing.Size(292, 14);
btnDownload.TabIndex = 2;
btnDownload.Text = "Download and Install";
btnDownload.UseVisualStyleBackColor = true;
btnDownload.Click += btnDownload_Click;
//
// prgbDownload
//
prgbDownload.Dock = System.Windows.Forms.DockStyle.Fill;
prgbDownload.Location = new System.Drawing.Point(301, 401);
prgbDownload.Name = "prgbDownload";
prgbDownload.Size = new System.Drawing.Size(430, 14);
prgbDownload.TabIndex = 3;
prgbDownload.Visible = false;
//
// pbUpdateImage
//
pbUpdateImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
pbUpdateImage.Cursor = System.Windows.Forms.Cursors.Hand;
pbUpdateImage.Location = new System.Drawing.Point(301, 94);
pbUpdateImage.Name = "pbUpdateImage";
tableLayoutPanel1.SetRowSpan(pbUpdateImage, 4);
pbUpdateImage.Size = new System.Drawing.Size(33, 32);
pbUpdateImage.TabIndex = 45;
pbUpdateImage.TabStop = false;
pbUpdateImage.Visible = false;
pbUpdateImage.Click += pbUpdateImage_Click;
//
// UpdateWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(734, 418);
this.Controls.Add(this.tableLayoutPanel1);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "UpdateWindow";
this.TabText = "Update";
this.Text = "Update";
this.Load += new System.EventHandler(this.Update_Load);
((System.ComponentModel.ISupportInitialize)(this.pbUpdateImage)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
}
AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
ClientSize = new System.Drawing.Size(734, 418);
Controls.Add(tableLayoutPanel1);
Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
Name = "UpdateWindow";
TabText = "Update";
Text = "Update";
Load += Update_Load;
tableLayoutPanel1.ResumeLayout(false);
tableLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)pbUpdateImage).EndInit();
ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
internal MrngButton btnDownload;
internal Controls.MrngProgressBar prgbDownload;
internal System.Windows.Forms.PictureBox pbUpdateImage;
}
}

View File

@@ -182,7 +182,7 @@ namespace mRemoteNG.UI.Window
Runtime.MessageCollector?.AddExceptionStackTrace(Language.UpdateCheckCompleteFailed, ex);
}
}
private void SetVisibilityOfUpdateControls(bool visible)
{
lblChangeLogLabel.Visible = visible;

View File

@@ -1,64 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">

View File

@@ -2,10 +2,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<TargetFramework>net6.0-windows7.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon>Icons\mRemoteNG.ico</ApplicationIcon>
<Version>1.77.3</Version>
<Version>1.77.3-dev</Version>
<Description>Multi-protocol remote connections manager</Description>
<Copyright>$([System.DateTime]::Now.Year) mRemoteNG Dev Team, 2010-2013 Riley McArdle, 2007-2009 Felix Deimel</Copyright>
<PackageLicenseFile>COPYING.TXT</PackageLicenseFile>
@@ -17,33 +17,52 @@
<PackageIcon>Header_dark.png</PackageIcon>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<UseWPF>True</UseWPF>
<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
<SignAssembly>False</SignAssembly>
<Title>Multi-Remote Next Generation Connection Manager</Title>
<RepositoryUrl>https://github.com/mRemoteNG/mRemoteNG.git</RepositoryUrl>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<DefineConstants>DEBUG</DefineConstants>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningsAsErrors />
<OutputPath>bin\x64\Debug\</OutputPath>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<Optimize>False</Optimize>
<WarningLevel>7</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants />
<Optimize>false</Optimize>
<Optimize>True</Optimize>
<OutputPath>bin\x64\Release\</OutputPath>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningsAsErrors />
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<WarningLevel>7</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Portable|x64'">
<DefineConstants>DEBUG;PORTABLE</DefineConstants>
<Optimize>false</Optimize>
<Optimize>False</Optimize>
<OutputPath>bin\x64\Debug Portable\</OutputPath>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningsAsErrors />
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<WarningLevel>7</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Portable|x64'">
<DefineConstants>PORTABLE</DefineConstants>
<Optimize>false</Optimize>
<Optimize>True</Optimize>
<OutputPath>bin\x64\Release Portable\</OutputPath>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningsAsErrors />
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<WarningLevel>7</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Installer|x64'">
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<Optimize>True</Optimize>
<WarningLevel>7</WarningLevel>
</PropertyGroup>
<ItemGroup>
<None Remove="buildenv.tmp" />
@@ -96,6 +115,11 @@
<AutoGen>True</AutoGen>
<DependentUpon>Language.resx</DependentUpon>
</Compile>
<Compile Update="Properties\AssemblyInfo.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>AssemblyInfo.tt</DependentUpon>
</Compile>
<Compile Update="Properties\OptionsBackupPage.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
@@ -215,6 +239,10 @@
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="Properties\AssemblyInfo.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>AssemblyInfo.cs</LastGenOutput>
</None>
<None Update="Icons\Admin.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@@ -448,7 +476,7 @@
</None>
</ItemGroup>
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="echo $(ConfigurationName) &gt; buildenv.tmp" />
<Exec Command="echo $(ConfigurationName) &gt; buildenv.tmp&#xD;&#xA;&quot;$(DevEnvDir)TextTransform.exe&quot; -a !!BuildConfiguration!&quot;$(Configuration)&quot; &quot;$(ProjectDir)Properties\AssemblyInfo.tt&quot;" />
</Target>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command=":: When passing paths to powershell scripts, check if the path ends with a backslash &quot;\&quot;&#xD;&#xA;:: If it does, then the backslash may be interpreted as an escape character. Add another backslash to cancel the first one.&#xD;&#xA;&#xD;&#xA;powershell -noprofile -command &quot;sleep 2&quot;&#xD;&#xA;&#xD;&#xA;set /p buildenv=&lt;buildenv.tmp&#xD;&#xA;&#xD;&#xA;:: Manual builds, set the cert password and uncomment below.&#xD;&#xA;:: IF &quot;%25APPVEYOR_BUILD_FOLDER&quot;==&quot;&quot; ( set cert_pwd= )&#xD;&#xA;&#xD;&#xA;:: Call the post build powershell script&#xD;&#xA;powershell.exe -ExecutionPolicy Bypass -File &quot;$(SolutionDir)Tools\postbuild_mremoteng.ps1&quot; -SolutionDir &quot;$(SolutionDir)\&quot; -TargetDir &quot;$(TargetDir)\&quot; -TargetFileName &quot;mRemoteNG.exe&quot; -ConfigurationName &quot;%25buildenv%25&quot; -CertificatePath &quot;$(CertPath)&quot; -CertificatePassword &quot;$(CertPassword)&quot; -ExcludeFromSigning &quot;PuTTYNG.exe&quot;" />
@@ -478,4 +506,7 @@
<ItemGroup>
<PackageReference Update="chromiumembeddedframework.runtime.win-x86" Version="92.0.25" />
</ItemGroup>
<ItemGroup>
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
</ItemGroup>
</Project>

View File

@@ -19,7 +19,6 @@ The list below includes databases that are officially supported. Others may alre
Steps to configure your SQL Server
==================================
- Create a new Database called "mRemoteNG" on your SQL Server.
- Run the SQL Script for your DB type listed below in topic (SQL Table creation Scripts) on the newly created Database.
- Give the users that you want to grant access to the mRemoteNG Connections Database Read/Write permissions on the Database.
Steps to configure mRemoteNG for SQL

View File

@@ -120,9 +120,6 @@
<Component Id="cmp6107C12C2A55CB8E7E97FF2C9A33F385" Directory="INSTALLDIR" Guid="*">
<File Id="fil135F9AEEB4A74E1EE438100986E97C41" KeyPath="yes" Source="$(var.HarvestPath)\Microsoft.Xaml.Behaviors.dll" />
</Component>
<Component Id="cmp1FF884F3A57BE81D6F6723E190FA13B8" Directory="INSTALLDIR" Guid="*">
<File Id="filD21FDAF1DEE86A89847F409021A410BF" KeyPath="yes" Source="$(var.HarvestPath)\mRemoteNG-Installer-1.77.3.0.msi" />
</Component>
<Component Id="cmp41D33384103998013724F7507BE537A3" Directory="INSTALLDIR" Guid="*">
<File Id="filD409F3953DFE64FEE2FDC4460BD98297" KeyPath="yes" Source="$(var.HarvestPath)\mRemoteNG.deps.json" />
</Component>

View File

@@ -10,21 +10,9 @@
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<OutputPath>bin\$(Configuration)\</OutputPath>
<OutputPath>bin\x64\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants>HarvestPath=..\mRemoteNG\bin\Debug;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants>HarvestPath=..\mRemoteNG\bin\Release;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug Portable' ">
<DefineConstants>HarvestPath=..\mRemoteNG\bin\Debug Portable;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release Portable' ">
<DefineConstants>HarvestPath=..\mRemoteNG\bin\Release Portable;</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="CustomActions\CheckForInstalledWindowsUpdates.wxs" />
<Compile Include="CustomActions\SaveInstallLocation.wxs" />

View File

@@ -1,7 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Connection;
using mRemoteNG.Config.Serializers.ConnectionSerializers.Csv;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;
@@ -16,7 +15,7 @@ using NUnit.Framework;
namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
{
public class CsvConnectionsDeserializerMremotengFormatTests
public class CsvConnectionsDeserializerMremotengFormatTests
{
private CsvConnectionsDeserializerMremotengFormat _deserializer;
private CsvConnectionsSerializerMremotengFormat _serializer;

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Connection;
using mRemoteNG.Config.Serializers.MiscSerializers;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;

View File

@@ -7,7 +7,7 @@ using NSubstitute;
using NUnit.Framework;
namespace mRemoteNGTests.Tree
namespace mRemoteNGTests.Tree.ClickHandlers
{
public class ExpandNodeClickHandlerTests
{

View File

@@ -6,7 +6,7 @@ using NSubstitute;
using NUnit.Framework;
namespace mRemoteNGTests.Tree
namespace mRemoteNGTests.Tree.ClickHandlers
{
public class OpenConnectionClickHandlerTests
{

View File

@@ -6,7 +6,7 @@ using NSubstitute;
using NUnit.Framework;
namespace mRemoteNGTests.Tree
namespace mRemoteNGTests.Tree.ClickHandlers
{
public class SwitchToConnectionClickHandlerTests
{

View File

@@ -5,7 +5,7 @@ using NSubstitute;
using NUnit.Framework;
namespace mRemoteNGTests.Tree
namespace mRemoteNGTests.Tree.ClickHandlers
{
public class TreeNodeCompositeClickHandlerTests
{
@@ -24,7 +24,7 @@ namespace mRemoteNGTests.Tree
{
var handler1 = Substitute.For<ITreeNodeClickHandler<ConnectionInfo>>();
var handler2 = Substitute.For<ITreeNodeClickHandler<ConnectionInfo>>();
_clickHandler.ClickHandlers = new[] {handler1, handler2};
_clickHandler.ClickHandlers = new[] { handler1, handler2 };
_clickHandler.Execute(_connectionInfo);
handler1.Received().Execute(_connectionInfo);
handler2.Received().Execute(_connectionInfo);