Changes in v3.10

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

Implemented preliminary handling for the latest preview release of VS2017.15.3, along with .NET Core v2.0.  It's 
expected that both of these platforms will likely change prior to their upcoming RTM release, and things may 
break if they do.

Fixed an issue that was preventing NCrunch from detecting projects newly added to a solution under VS2017 15.3

Fixed an impact detection hole that would prevent NCrunch from detecting an impacted fixture currently under 
execution under specific circumstances.

Implemented support for MSpec under .NET Core.

Added a new NCrunch.Framework attribute, 'AtomicAttribute'.  When applied to a fixture, all tests within the 
fixture become interdependent and will always be run together in one group.  Any attempt made to run a single 
test under an atomic fixture will result in all tests in the fixture being run in the same execution task.  
This should be useful for sequence dependent tests and tests with very high fixture setup times.

Fixed an issue where the NCrunch client could incorrectly disconnect from a remote grid node during transfer of 
large files.

Fixed an issue where NCrunch was not correctly mapping exception markers for tests that were under execution 
while source code was changed.

Fixed an issue where NCrunch was not correctly grid synchronising Nuget packages that were newly added to a 
project/solution.

Moved the 'PreviouslyBuiltSuccessfully' setting into the NCrunch .cache file.  NCrunch will no longer add this 
setting to project config files, though if it already exists in these files, the config system will not remove
it.  The XML element can now be safely removed from the config files and the engine won't re-add it.

Expanded the text in the bug report submission form to give a clearer picture of the contents of NCrunch bug 
reports.

Fixed an issue that could cause the filters on the Tests Window to become desynchronised with the engine when 
switching solutions.

Implemented a speculative fix to try and resolve startup problems on some systems.

Fixed an issue that was causing the engine mode customisation window to give popup errors when two engine modes 
existed with the same name but a different scope (which is actually allowed).

Fixed an issue that was preventing NCrunch from compiling .NET Standard projects on machines that had never 
tried to build a netcoreapp project before.

Fixed inconclusive test results settings not being properly respected when inconclusive exceptions were thrown 
in MSTest TestInitialize methods.

Added handling for NUnit's TestContext output.  This will now be written to the test's trace output by NCrunch.

Fixed an issue where the NCrunch console tool would fail to create an HTML report for projects containing 
multi-targeted projects.

Added non-internal errors to the HTML results report.

Adjusted the formating of warnings in the HTML results report so that the line breaks are properly included.

Adjusted NCrunch's handling of duplicate named NUnit3 tests so that when these are detected, the engine will 
treat them as the same physical test.  Results from the multiple tests are collected and stored against the 
single test.  Warnings about duplicate test names will still be shown as technically this is still not a 
supported use case under NCrunch.

Adjusted the NCrunch.Framework Nuget package so that this is now properly multi-targeted.  This means you should 
now be able to use this package for .NET Core and netstandard projects.  This will now also be installed into 
two locations under the NCrunch install directory (net35 and netstandard1.5).

Fixed an issue that was preventing NCrunch from correctly negotiating project references from some classic 
.NET projects to multi-targeted CPS based projects.

Fixed an issue where NCrunch was not considering NUnit3's explicit attribute when this was applied at fixture 
level.

Fixed an issue where projects using the 'InternalsVisibleTo' attribute were not having their referenced projects 
recompiled when internal types were changed.

Implemented handling for IDisposable on MSTest fixtures.

Fixed an issue where including a space in the TargetFrameworks element for multi-targeted projects would create 
problems for NCrunch.

Implemented a speculative fix to try and resolve problems with multiple coverage bars appearing after files are 
renamed in VS2017.

Disabled data compression on all grid network communication.  Tests have shown that the CPU required to compress 
the data was creating a bottleneck and actually reducing the speed of data transmission while increasing the 
resources required.  Considering that most users are probably working with reasonably high speed connections to 
grid nodes and are not sitting on the beach using mobile connections (as much as we might wish otherwise), this 
should give a significant performance improvement when working with large solutions over a grid.

Fixed an issue where partially out of sync or corrupted Nuget packages on grid nodes were not being correctly 
updated from grid clients.

Improved the error handling of NCrunch's parsing of CPU core descriptors from config files, so when these are 
invalid values they shouldn't cause the engine to explode.

Added a warning regarding AutoFixture incompatibility.

Fixed the intermittent 'System.ComponentModel.Win32Exception: The parameter is incorrect' issue that could 
sometimes appear when the NCrunch console tool was executed.

Fixed broken C# compiler constants under CPS based projects.

Adjusted the handling and merging of .NET Core .deps files to resolve some dependency problems with the 
AspNet.TestHost library.

Fixed an issue where Xunit test name generation was being performed in a culture-sensitive manner.  This was 
causing problems when trying to distribute Xunit tests across grid nodes with different localities.

Introduced a workaround for an IL hash comparison issue caused by FSharp expressions that embed the full file 
path of the source file in the compiled assembly.

Added a discovery cache layer inside of xunit test execution processes to try and improve the handling of tests 
with unstable parameters.

Restructured NCrunch's code coverage capturing system to provide better handling of .NET Framework test projects 
referencing netstandard projects.