The cause of the problem is our use of the developmentDependency flag in our *.nuspec files. Our interpretation of the documentation was apparently incorrect from the beginning but the flag was not properly implemented by Visual Studio, and therefore everything worked perfectly. Now the team at Microsoft decided to implement the flag "properly" at the cost of breaking previous packages, including PostSharp. We discovered the issue while testing the preview of VS 15.8 and reported it to Microsoft but they decided to do the breaking change anyway.
The problem affects projects using the new CPS format with <PackageReference> instead of packages.config. The problem will occur when you will add a PostSharp package to your project. Existing projects that already have a reference to the packages are not affected.
If you are affected by the issue, you have two options:
- Use PostSharp version 5.0.53 or 6.0.18 if you have an active support subscription or use PostSharp Essentials.
- Otherwise, you can manually edit the NuGet packages you depend on by unzipping them, removing the developmentDependency flag from the nuspec file, and rezipping them.
This is not the first time that Microsoft does breaking changes and we understand this is the price to pay for the faster release pace we've enjoyed during the last months.
Happy PostSharping nevertheless!
EDIT: Fixed an incorrect information that only projects targeting .NET Core or .NET Standard are affected. Projects targeting .NET Framework may be affected too if they have been converted to PackageReference.