Changes in v3.23

-----------------------------------------------------------------
Release notes for 3.23.0.10 since version v3.22.0.1
-----------------------------------------------------------------

*****
This version of NCrunch introduces changes to the grid protocol. This means that grid node servers
must be updated before they can be used with the new version.
*****

------------------ UX Improvements and New Features -------------------

Added the possibility to reset configuration settings to their default value when using the console tool.
For example: -Default GridServerReferencesForComputer.

Added room for an extra line of message details in the exception coverage popup.

Changed the date format on the console tool html report.

Added the following properties to the NCrunch build system:
NCrunchOriginalSolutionPath (full path to foreground solution .sln file)
NCrunchOriginalSolutionName (file name of solution .sln file with extension)
NCrunchOriginalProjectPath (file name of foreground project file with extension)



------------------ Compatibility Improvements -------------------

Added support for MSTest custom data source attributes.

Fixed a problem when loading a dotnetcore project from a network share

Signed all executables shipped with NCrunch

Added an extra check to NCrunch's NUnit integration that looks for situations where the number of discovered
tests in an assembly differs from the number of tests found in the assembly at execution time. This allows
NCrunch to detect unstable test generation scenarios (usually originating from the use of TestCaseSource)
and report these sensibly rather than becoming unstable downstream.

Adjusted NCrunch's internal project dependency handling system to better deal with erroneous scenarios
involving multi-target projects being referenced multiple times within a project dependency structure.

Added a warning about Xamarin projects being unsupported by NCrunch.

Fixed an issue where CodeLens could cause NCrunch's markers to be temporarily misaligned in some situations.

Introduced a speculative fix to prevent errors from being kicked up on grid nodes when working with a solution
that hasn't had the project.assets.json file constructed/restored by VS yet.

Fixed an issue causing assembly resolution issues on grid nodes for some system assemblies under later
versions of VS2017.

Fixed an issue where creating an MSTest data row test with null values passed into array parameters was
causing NCrunch's MSTest adapter bomb out with exceptions.

Fixed an issue where MSTest DataRow tests passing a null value to array parameters were being flagged up
as an error case by NCrunch, when actually they should be executed in the same manner as the VS runner does.

Fixed an issue that could cause test failures to not be reported correctly when processing consolidated MSTest
dynamic data test cases.



------------------ Fixes -------------------

Fixed an issue that was causing the breakpoint to be misaligned when trying to break into a line of code
in a recently modified source file.

Fixed an issue with the status icon flickering when it was being shown on HighDPI screens.

Fixed a rendering issue on the timeline report when a test name contained html.

Fixed the message tool tip window not always having the correct size

Implemented a speculative fix for code member sequencing exceptions that could be thrown on some systems.

Fixed a performance issue in the tests window when having a lot of tests selected while also having a lot
of tests visible

Adjusted the console tool so that the 'Align out of date status with impact status' configuration setting
is always forced to 'false'. When set to 'true', this setting interferes with the console tool results
report and serves no practical purpose.

Fixed an issue where fixture pass/fail results were including the fail results of ignored child tests.
This could result in fixtures being stuck in a failed state in the UI until the ignored child tests were
unignored and rerun to a pass.

Fixed an issue where replacing an existing Nuget package on a remote grid node was not completely clearing
out existing files that were part of the package. This could result in packages on the grid node being
composites of older structures, throwing off hash checks and causing the packages to be re-uploaded every
time a client connected.

Adjusted NCrunch's automatic synchronisation of Nuget package files between the client and grid node so
that if the grid node has an existing client making use of a Nuget package in need of update, the package
will not be transferred. This should help to prevent file locking issues during package transfer.

Fixed an issue where grid connections would halt and fail to recover when the upload of a file to the
grid node server failed (i.e. due to file locking issues), even though the error message said that the
node would continue to try and work normally.

Adjusted the error message shown when failing to parse a setting using the NCrunch console tool command
line to be less misleading when a setting value is incorrect.

Fixed a flickering of the mouse cursor that could occur when hovering over certain areas of the NCrunch
UI.

Fixed a threading issue that could cause rare exceptions to be thrown in the engine.