Changes in v4.9

-----------------------------------------------------------------
Release notes for 4.9.0.5 since version v4.8.0.3
-----------------------------------------------------------------

*****
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 support for VS2022 Preview 1.

Added support for Roslyn analyzer source generators.

Implemented automatic detection of changes made to NCrunch settings files on disk. When the settings files are changed, NCrunch will reload them and
apply and changes to the current session. This effectively implements fully shared settings between all open NCrunch sessions as well as source control systems.

When files are added to a path that matches the "Additional files to include for grid processing" setting they will now be automatically synchronised to the grid nodes.

Added a new project-level configuration option, 'Copied project dependencies'. This option works in a similar way to the 'Implicit project dependencies'
setting, with one key difference: Output files from the referenced project will always be copied to the referencing project at build time. The primary
purpose of this setting is to better support build chains relying on native assemblies, which currently cannot be represented using normal project references in MSBuild.

A colour can now be assigned to an engine mode. This colour is used in the engine mode icon in the tests window.

Removed legacy instrumentation mode from NCrunch. All instrumentation must now be under the new optimised mode.

Removed support for Visual Studio 2008.

Added a new setting to limit the number of times to try to reconnect to a grid node. This defaults to 20 attempts when using the Console Tool and unlimited attempts under Visual Studio.

Added the ability to pin and unpin tests in the Tests Window on namespace and project level.

Added a popup message when trying to run a test on a specific server that doesn't have the capability to run that test.

Added a notification when the engine disables the churn mode instead of the user.

Added a notification when the engine stops churning tests because there are no more tests to churn.

Added a notification to tell the user the engine is winding down from churn mode when it's disabled manually.

Added a message to the Tests Window when Churn Mode is winding down.

Tweaked the logging system to reduce CPU consumption in situations with a lot of concurrency.

Tweaked performance to reduce drag on the engine when many editor windows are open at one time.

Fixed an issue where project settings for a non multi target project might not be stored correctly.

Fixed a noise NullReferenceException that could happen in some VS editor window configurations.

Fixed a problem with input validation on the CPUCoreAssignment setting in the configuration file.

Fixed the time duration reporting in the RawResults.xml report.

Fixed sluggish recovery from situations where NCrunch processes are unexpectedly terminated while in the middle of a logging operation.

Fixed several race conditions in the new logging system that could cause session instability.

Fixed a noise NRE exception that could be thrown on grid nodes processing many partially synchronised connections.

Fixed an issue that could cause DynamicProxy DLL resolution problems on grid nodes with multiple client connections.

Fixed an issue where NCrunch was failing to instrument assemblies processed by PostSharp.

Fixed several issues that could cause the NCrunch code navigation points to be desynchronised with the underlying codebase.