Changes in v3.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.
*****

Fixed an issue where NCrunch would neglect to remove test coverage data for tests that existed in projects removed
from the solution while the engine was offline. This data would then persist in the cache file forever.
Technically, this was a persistent memory leak.

Fixed unsupported projects not being shown in the NCrunch Configuration Window after the engine has failed to load
them.

Fixed a serious hole in NCrunch's impact detection that would cause the engine to fail to mark certain tests as
impacted after changes were made to a project within the solution.

Rewired NCrunch's project load system so that instead of waiting for project data from the IDE, the system will
first load project details from file. Where the IDE later provides project data, this will be fed into the engine
only where changes are evident. This is quite a significant change that has resulted in the following:
- The engine now initialises much faster on large solutions, as it doesn't need to wait for the IDE to provide
data on all projects.
- 'Unloaded' projects in the IDE are now always considered as loaded by NCrunch. This is a necessary side
effect, as NCrunch cannot reliably distinguish unloaded projects from projects that are waiting to be loaded
by the IDE.
- VS2017 lightweight projects are now handled sensibly by NCrunch, as projects that haven't been loaded by the
IDE will already be present in the NCrunch engine.

Removed the 'Project load timeout in seconds' setting as this is no longer used or required.

Rewired NCrunch's synchronisation with open editor windows on startup to reduce complexity and resolve a number of
issues that could appear while enabling the engine.

Fixed multiple problems causing the risk/progress bar to show incorrect data.

NUnit 3.6: Added handling for NUnit warnings. These will be written to the test output without failing the test.

NUnit 3.6: Added handling for Assert.Multiple blocks. Exceptions thrown within these blocks will be reported as
separate failures within the same test, making them visible inline under NCrunch.

NUnit 3.6: Added support for NonTestAssemblyAttribute

Rewired NCrunch's build integration so that under VS2015 and VS2017 the build host process is now sandboxed with a
generated configuration file. This should solve problems with VS2017 build binding redirections not being correctly
applied to secondary application domains, resulting in MSBuild assembly version conflicts at build time.

Fixed an issue where resource files were not being copied to the correct directory of referencing projects when the
'Copy referenced assemblies to workspace' setting was enabled and the projects involved had target output directories
referencing upwards from their project directories.

Fixed an issue that was causing the first method in a test fixture to be shown with a null coverage marker when
code coverage for the region was suppressed via ExcludeFromCodeCoverage or NCrunch comments.

Added a series of fallbacks to try and resolve problems where the NCrunch installer was failing to find VS2017 due
to VS COM API failure. This should also help with NCrunch failing to find the MSBuild system under VS2017.

Fixed a hole in the CompareIL impact detection where a change in processor architecture of an assembly would not
trigger impact detection for covering tests.

Fixed VS2017 installer failing on machines without .NET 3.5 installed.

Fixed a localization issue in which font sizes containing a decimal point were causing the engine to throw exceptions
when trying to load settings under certain cultures.

Fixed an issue where usage of the CallerFilePathAttribute would cause NCrunch's impact detection to trigger
incorrectly. This would also happen if the attribute was used in a referenced assembly (i.e. NLog).

Fixed an issue that could cause NCrunch to neglect to load project configuration from solutions that were closed and
reopened during the same IDE session. This could result in project configuration being cleared if changes were
subsequently written back to the settings file.

Added build integration for .NET Core projects. This is still a work in progress and many use cases are not yet
handled.

Added extra summary trace messages to NCrunch's message output that detail the time taken to initialise NCrunch
inside the VS Package and automation bootstrap processes. This should help with diagnosing high startup times where
these are reported by VS2017.

Added VS2008/2010 'Setup' projects to the list of unsupported project types.

Fixed bad wording on workspace base path change confirmation message.

Disabled the setting description pane in the configuration window when there is no text visible.

Fixed exception thrown in test environment when a project without any source files is referenced.