Changes in v4.0

Release notes for since version v3.31.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.

BIG FEATURE RELEASE:  Introduced a new IL-processing/instrumentation system giving a massive improvement 
in performance, and a new feature area for analysing line execution times in bulk (global hot spots).
For more information on these major changes, please see

Restructured the handling of code coverage data to improve performance.  This should significantly reduce the 
runtime lag caused by the tracking of code coverage data when executing many small tests inside a single 
execution task.

Added the option to filter on project names with regular expressions when using filters on an engine mode.

Added a button to the metrics window to reset the excluded metrics.

Fixed a problem with determining the correct target when a netcoreapp2.1 or 2.2 project was referencing a 
multi targeted project that targeted netstandard2.0 and netstandard2.1

Made a performance improvement in the UI when the engine is reporting the status of lots of tests.

When running under .NET Core, tests will now use the server GC with concurrent garbage collection disabled.  
We've recently observed some strange rare abnormalities related to concurrent garbage collection in the NCrunch 
test environment and are hoping this change will resolve the problems and may also yield some performance benefit.

Fixed an exception being thrown when setting the data storage path in the Grid Node Configuration wizard.

Introduced a workaround to the project loading system so that .razor files are considered code files by 
NCrunch, even though the build system reports them as content.  This should allow NCrunch coverage markers 
to show on these files.

Improved the error reporting when a build task fails unexpectedly.