Changes in v4.15

-----------------------------------------------------------------
Release notes for 4.15.0.4 since version v4.14.0.7
-----------------------------------------------------------------

*****
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.
*****

Added handling of CTRL-C to the GridNode console tool. The tool will now go through an orderly shutdown when the process receives the close signal, ensuring all sockets are correctly closed.

Fixed a data consistency issue that could cause NCrunch to fail to correctly preserve portions of coverage data between sessions.

Fixed an issue that could cause the NCrunch client to lose connection to remote grid nodes when the system is under heavy load.

Fixed an issue that could cause the initialisation spinner to throw up some crazy progress values.

Fixed an issue where removing a project from a solution between sessions could result in stale test data being left inside the model, causing downstream instability.

Fixed an issue that could cause stack overflow exceptions when working with a very large number of tests covering a large number of content files.

Adjusted the cache storage system to reduce the size of the cache file.

Optimised the code navigation indexes to improve performance.

Fixed a performance issue that could cause the engine to hang when making frequent modifications to source files containing a large number of NCrunch navigation points (i.e. test entry points, test failure points, compile errors)

Fixed an issue where NCrunch wasn't handling IL-based type forwarding correctly when instrumenting assemblies.

Fixed an issue that was preventing NCrunch from correctly identifying test timeout values declared using custom NUnit3 timeout attributes.

Introduced a speculative fix to try and resolve issues with Nuget packages disappearing from grid nodes when grid clients fail to complete synchronisation.

Fixed an internal exception that could be thrown sometimes on new solutions which appears to be benign.

Fixed an issue where the bottom of the log file written by the console tool was being truncated.

Fixed NCrunch build targets interfering with Azure Function Project nested build tasks.

Adjusted the handling of implicit project references so that their dependencies will now also be included as implicit references (if they are not already explicitly referenced)

Restructured the internal handling of the references introduced using the 'Implicit project dependencies' setting. Previously, the assemblies provided at runtime using this setting could potentially be redirected by assemblies resolved out of the build system. Now, they will always resolve directly to the built assemblies of their associated projects regardless of other build behaviour.

Fixed the 'Implicit project dependencies' setting so that this now works correctly when specified with multiple framework targets for multitargeted projects. Previously, only one of the target frameworks would be provided to the test process. Now, they are all passed in.

Fixed an issue that could cause the 'Clearing pipeline' progress spinner to hang on the screen if an attempt was made to terminate executing tasks that are already terminated.

Improved the MSTest adapter so that it can now handle nullable enum DataRow test parameters when using StaticAnalysis.

Fixed OS specific target framework monikers could lead to incorrectly determined project references when the reference has multiple targets.

Boosted the baseline priority for analysis tasks from 249 to 750. This should make the engine more responsive in discovering new tests when a large amount of work is in the queue.

Fixed a problem when building net7 winforms projects.