Changes in v4.10

Release notes for since version v4.9.0.8

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.

Switched NCrunch to a different MSBuild API call when initialising MSBuild projects in preparation for load. The existing API we were using has been broken by the new VS2022 RC. This change will allow NCrunch to continue to work under the new VS2022 RC.

Introduced a workaround to an issue that appears when using a non-preview version of the DotNet SDK with NCrunch while a preview version of DotNet is installed. Previously, this issue would cause NCrunch to use the preview tools while the IDE would use the non-preview ones, causing obscure issues downstream when projects were built. NCrunch will now attempt to detect this situation and use environment variables to force the underlying platform to use non-preview tooling in alignment with the IDE.

Fixed an issue where categories applied at fixture level on inherited tests under MSTest would not be detected by NCrunch when using DynamicAnalysis.

Adjusted the NCrunch console tool so that when all tests have been executed in the run, the run will terminate even if there are connected grid nodes with unprocessed build or analysis tasks.

Introduced a forced disabling of build targets used by Trigger-based Azure Function projects, as these targets don't run correctly under NCrunch and have particularly bad UX (such as sluggish performance and opening of command prompt windows on the user's desktop). Hopefully these targets will not be needed for code running under test, as we do not have a plan to support them. This should allow NCrunch to work with trigger-based Azure function projects.

Fixed that the version number wasn't shown in the license window under VS2022

Added support for handling of source generator project dependencies that use the TargetPathWithTargetPlatformMoniker override.

Lowered the threshold for stack overflow detection to enable earlier detection before processes are torn down by the O/S.

Fixed an issue where NCrunch would fail to load assemblies with more than 16384 declared types (includes reference assemblies)

Implemented a speculative fix for a race condition in the instrumentor.

Adjusted the handling of source generation projects so that NCrunch will no longer force instrumentation to be turned off for them. Instead, a warning will be shown giving information that the source generation may fail unless the 'Instrument Output Assembly' setting is disabled.

Changed the default Build Process Architecture to x64 for VS2022.

Fixed stack overflow detection sometimes not working on some systems.

Fixed a race condition on the grid node that could cause 'no content to compile' errors.

Extended the console tool's logging system so that the NCrunch log will now be written to a file output into the console tool output directory.

Updated nCrunch.TestRuntime.dll so that this now targets netstandard1.3 (used to be netstandard1.1). This may cause issues for people using environments that target netstandard1.1 without any roll forward in place (if this is actually still possible to do with the current MS toolset). Unfortunately, we can't continue on netstandard1.1 as there are critical system types that are simply inaccessible on this platform.