Changes in v4.19

Release notes for since version v4.18.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 a new configuration option, 'Build SDK', which can be used to specify the version of MSBuild used to build a given project. This can be used to allow a NCrunch to use dotnet build while running under Visual Studio. The value from this setting will also be passed to grid nodes and considered as a preference for which build engine should be used. If the specified build engine is not installed or is unavailable, a warning is shown under the built project in the Tests Window and the best available build engine will be used instead.

Fixed an issue where specifying duplicate implicit references to a project could cause the engine to hang with an unreported build error.

Adjusted the rendering of text lines in the Tests Window trace output to try and resolve issues where the tail of hyperlinks is sometimes clipped.

Adjusted the license dialog so that this will now trim leading and trailing spaces from the license server text fields, to prevent accidents resulting from bad copy/paste actions.

Added tooltips to the tree icons in the Tests Window

Added handling for generic custom attributes inside CIL processing and hash generation.

Improved exception stack trace parsing for a range of languages/cultures.

Fixed an issue that could cause Nuget packages to be copied to grid nodes unnecessarily.

Added support for MSTest's InheritanceBehavior specifier on ClassInitialize.

Fixed grid node failing to update its internal hash cache when storing large amounts of data on behalf of grid clients. This could cause the hash cache to become desynchronised with the state of the stored data, slowing down the startup of the grid node.

Removed the context menu option that opens the context menu, since this doesn't really help much in its context.

Fixed a project change synchronisation problem that could cause NCrunch to discard project changes involving files being created or renamed on disk if they were being processed at the same time as other project changes. This should improve stability when responding to rapid project changes being performed by the IDE, particularly during refactoring.

Fixed an issue where the progress/corner spinner wouldn't progress when the system was under load

Implemented a speculative fix to try and resolve mscorlib resolution issues on systems that do not have .NET Framework v2 installed.

Fixed an issue that could cause the NCrunch engine to crash with a stack overflow when trying to instrument assemblies with circular references, which probably shouldn't actually be possible in .NET, but actually it is!

Fixed being unable to break into tests covering this line under Visual Studio 2022.

Adjusted the handling of Blazor Web Assembly projects so that these will now be built with SelfContained=true. This is to work around a recently introduced limitation in the platform SDK that causes these projects to fail to build with a JS-related error when they are not self-contained. This may create issues with NCrunch not easily being able to synchronise all platform dependencies for these projects with grid nodes up-front, which can be worked around with a manual restore step on the remote node if necessary.

Implemented a speculative fix for a rare noise exception in the UI.

Fixed an issue that was preventing Xunit 2.5 test discovery from working correctly on projects with test cases using inline data consisting of unserializable parameters.