
Adds support for C# 7.2, .NET Core 2.0-2.1, .NET Standard 2.0 and CPS-based project systems in Visual Studio.
Features
New Platforms
- Support for .NET Core 2.0-2.1 and .NET Standard 2.0 - PostSharp now runs natively under .NET Core 2.0 or later, which means that .NET Core projects are no longer cross-compiled from .NET Framework. Note that PostSharp 6.0 will still build only under Windows.
- Support for Portable PDB - Now supports portable PDB files as well as "embedded" portable PDBs.
- Support for C# 7.2 - The new in parameters and ref struct types are now properly handled.
- Support for CPS-based project systems in Visual Studio - The new project systems, which work with simpler project files and include built-in support for NuGet package references, are now properly supported.
New Features
- Robust logging - A defect in the logging feature (whether in your code, in PostSharp, or in the logging framework) will not cause a failure of your application. By default, exceptions open the circuit breaker of the logging subsystem, therefore disabling logging for the rest of the application lifetime.
- Flexible logging initialization - It is no longer necessary to initialize PostSharp.Patterns.Diagnostics before the first logged type is hit.
- Cache locking - You can prevent concurrent executions of the same methods with the same arguments using the new cache locking facility. PostSharp provides an implementation for local (in-process) locking, and an open API to implement distributed locking.
- Versioning hell solved - Different projects of a solution can now reference a different builds of PostSharp within the same major version, as long as "referencing" projects use a higher PostSharp version than "referenced" projects. Added a test battery to verify structural backward compatibility (compatibility of public APIs and serialization details).
Deprecated Platforms
- Deprecation of support for Visual Studio 2012 - Please update to VS 2013 or later.
- Deprecation of support for .NET Core SDK 1.1 - You can still build projects targeting .NET Core 1.1, but using .NET Core SDK 2.0 or later.