Release Notes: October 6, 2017

Hello, 2.3!

Today, we're shipping 2.3; this includes RTM builds of the core framework and the Visual Studio runner. Ah, the sweet feeling of blue lights:

It's been nearly 8 months since the release of 2.2 RTM. That was strongly aligned with .NET Core 1.0, and in the intervening time, that team has now shipped a substantial 2.0 update. Similarly, 2.3 feels like it has a much improved experience for .NET Core users (both 1.x and 2.x).

One of the core reasons we've done has been to improve the day-to-day unit testing experience for .NET developers. At a previous job, we had discussions about adding Roslyn code analyzers to as a way to make our guidance more concrete. These rules and fixes would represent our knowledge with issues commonly faced by unit testers in general, and users in particular. Marcin Dobosz, one of our co-workers at the time, has stepped up and has done a tremendous job with the Analyzers project. Although this hasn't yet reached 1.0 status, we've already started including them when you reference the xunit meta-package; as a result, you will see our guidance light up as warnings and errors in your code.

Visual Studio 2017 has seen some substantial improvements since its release 7 months ago, with some great things on the horizon with 15.4 and 15.5. We are currently working on updated templates for the next release of the .NET SDK and a future update to Visual Studio 2017 which will include 2.3 references.

As always, we'd like to thank all the users who contributed to the success of through usage, feedback, and code contributions. We had too many contributors this time around to thank individually, so know that every bug reported, every line of code PR'd, every conversation contributed to on Slack, were all appreciated!

What's New

Core Framework

.NET Core

Breaking Changes

The xunit.runner.console NuGet package has been changed; notably, the path to the net452 executables has moved from tools\ to tools\net452\. You will need to update any paths which previously hard-coded this path.

The xunit.runner.msbuild NuGet package has been changed; notably, the names of the MSBuild runner DLLs now include the target platform. This means if you had a hard-coded path to xunit.runner.msbuild.dll, this will need to be replaced with xunit.runner.msbuild.net452.dll.

Important Notes

If you are using Visual Studio 2013, you must use NuGet 2.12 or later to use 2.3, because support for netstandard is required. You will not be able to use 2.3 with Visual Studio 2012 (if Visual Studio 2012 support is important, please stick with 2.1, the last version that officially supported 2012).

As a reminder: If you're extending and want to publish your extension as a NuGet package, you should import xunit.extensibility.core and/or xunit.extensibility.execution, not xunit or xunit.core. If you do this wrong, you might have problems generating your NuGet package via dotnet pack.

Release Notes

These release notes just include the highlights of what's new. You can review the individual release notes which contributed to 2.3:

RC 3 RC 2 RC 1 Beta 5 Beta 4 Beta 3 Beta 2 Beta 1

Copyright © 2017 .NET Foundation. Contributions welcomed at