PostSharp Caching v6.6.x

Released: Apr 21, 2020

Aggiornamenti in v6.6.x

6.6.18

Updated Dec 3, 2020

Fixes

  • Properties marked [Obsolete] in postsharp.config are ignored.

6.6.17

Updated Nov 12, 2020

Fixes

  • Licensing: Unlimited community features consume LOC from per-usage licenses.

6.6.16

Updated Oct 22, 2020

Fixes

  • BadImageFormatException in a generated async state machine for a generic method.
  • Licensing: System.ArgumentException in CountLinesOfCodeTask.GetLinesOfCodeOfType.

6.6.15

Updated Oct 1, 2020

Fixes

  • Licensing: ArgumentNullException at build-time when no transformation is present with per-usage license.

6.6.14

Updated Sep 11, 2020

Fixes

  • Threading: THR018 is emitted for read-only structs and should not since they are immutable.
  • DebuggerExtensibilityTask.Execute throws KeyNotFound when using MethodInterceptionAspect on extern method.
  • PlatformContext.InitializeTargetFramework is unable to parse framework name without "Version=".
  • InitializeCommonDirectories method throws NullReferenceException on GetEntryAssembly.
  • Enhancing a method that uses System.Drawing.Common's Bitmap produces AssemblyBinder exception.

6.6.13

Updated Aug 17, 2020

Fixes

  • Threading: deserialized array of field infos is empty if base class is in another assembly.
  • PortablePDB: Support for CompilerFlags CustomDebugInformation.
  • PortablePDB: Support for MetadataReferences CustomDebugInformation.
  • Build Client: runtimeconfig.json is reported as invalid when System.Reactive package is installed.

6.6.12

Updated Jul 27, 2020

Fixes

  • Aggregatable: Get back COM005 for collection fields.
  • PostSharp Diagnostics affects TLS version used by .NET HTTP libraries.
  • XAML Command: no error message when there is no Execute method.
  • Added a hint to check MachineKeys for 0x8013141C.

6.6.11

Updated Jul 9, 2020

Features

  • MetadataDeclarationMapping errors are hard to diagnose due to missing tracing.
  • XAML Command: add support for names without Execute.
  • Pricing 2020-Q3: rename update license agreement and rename per-repo.

Fixes

  • Threading: Retired the warning COM005. [Reference] is now assumed by default without a warning.
  • BuildClient: one framework reference is added to build-time .runtimeconfig even when multiple are referenced.
  • VSX: XAML Command UI generates methods with invalid name.
  • XAML Command: avoid double assignment of the command.
  • INPC: map of generic type instances is not correctly synchronized.
  • Xaml: DependencyProperty does not correctly test for NPC aspect.

v6.6.10

Updated Jun 22, 2020

Fixes

  • If a class doesn't have a [Parent] property, then [Parent] isn't set on its superclasses.

v6.6.9

Updated Jun 16, 2020

Fixes

  • Configuration: function has-plugin return false from Multicast/When.
  • [Parent] attribute on a child class is ignored if base class is [Aggregatable].
  • [ThreadUnsafe] throws an exception if on a class with a [Parent] property.
  • Fixed broken links in the API xmldocs.
  • Logging: Emits callvirt instead of call when transforming LogActivity.SetException(...).
  • XAML: [AttachedProperty] can't be used in XAML + documentation is outdated.
  • Logging: MethodOvertime runs even if logging was disabled at start of method.

v6.6.8

Updated May 25, 2020

Features

  • Rename per-user subscriptions to per-developer.

Fixes

  • Debugger: Cancellation in CallStackFilterService should not be reported.
  • Debugger: ContinueStep does not expect non CLR runtime instance.
  • Debugger: OnStepCompleteReceivedCore fails when reflected method is null method.
  • Debugger: SendHigher in DebuggerTrace.Message exceptions should be swallowed.
  • PortablePDB: Incorrect PDB emitted when tables in main PE file have many rows.
  • Code coverage broken due to missing file checksums in WindowsPDB.
  • Logging: Remove "this" from the outcome in logging messages.

v6.6.7

Updated May 5, 2020

Fixes

  • VSX: ArgumentException in UnadviseUpdateSolutionEvents4(UInt32 dwCookie).
  • VSX: Cannot access the service before it has been initialized during build.
  • VSX: InvalidOperationException in the FrameworkMoniker constructor.
  • VSX: ArgumentNullException in DocumentInfoReference.Get.
  • VSX: TaskCanceledException in OnIdeInitializedDelayedCoreAsync.
  • Debugger: NullReferenceException in the AsyncStackWalker constructor and broken walking for .NET Core 3.0+.
  • Update supported VB version to 16.0.
  • VSX: GeneralOptionsPage automation properties are not accessible to DTE.
  • The first binding of a [Command] to XAML doesn't work.
  • [NotifyPropertyChanged] on a class with a struct field and an extern method causes a crash.
  • Caching: ref and out parameters silently are null on output.
  • Licensing: Support for GitHub Actions.

v6.6.6

Updated Apr 21, 2020

Features

  • Introduces Community Edition which replaces PostSharp Essentials features include:
    • Simple aspects (OnMethodBoundaryAspect and MethodInterceptionAspect).
    • Architecture validation (build-time code validation).
    • Contracts (preconditions, postconditions).
    • NotifyPropertyChanged on auto-implemented properties.
    • Logging in developer mode.
    • Creation of low-level add-ins using PostSharp SDK.
    • Use of community add-ins (7 available at the time of writing).
    • Apply any premium feature to a maximum of 1,000 lines of code.
    • Additional features available in premium, paid editions:
      • Location-level aspects, event-level aspects, composite aspects.
      • Simple aspects applied semantically to async and iterator methods.
      • [NotifyPropertyChanged] with non-auto-implemented properties.
      • Caching, XAML commands and dependency properties, undo/redo, multi-threading.
      • Logging in production mode.
  • Per-Repo Subscriptions
    • Besides Per-User subscriptions, PostSharp are introducing Per-Repo subscriptions where the price does not depend on the number of daily unique users, not even on the size of your repository. Instead, the price depends on the amount of code where you want to use PostSharp.
    • If you liked PostSharp Community and now want to apply premium features to more than 1,000 lines of code, you can now purchase a license by increments of 1,000 lines of code. Compare this to having to buy a license upfront for each team member.
    • Per-Repo license is transferable, so if you’re a consultancy doing custom software, you can transfer the license to your customer along with the source code.
  • Per-User Lite Subscriptions
    • For people who still want a per-user subscription but want to reduce their initial bill with PostSharp, there is now the option of Per-User Lite subscriptions: compared to standard Per-User Subscriptions, it comes with a discounted price, but it does not contain a perpetual license. At the end of the year, you can choose to renew your Per-User Lite subscription, switch to a perpetual license, or stop using PostSharp.
  • Community Add-Ins
    • PostSharp have released the following add-ins under the open-source MIT license. They can be used for free with PostSharp Community:
      • PostSharp.Community.ToString (ported from ToString.Fody).
      • PostSharp.Community.Packer (ported from Costura.Fody).
      • PostSharp.Community.UnsafeMemoryChecker (our original contribution).
      • PostSharp.Community.DeepSerializable (our original contribution).
      • PostSharp.Community.StructuralEquality (ported from StructuralEquality.Fody).
      • PostSharp.Community.Virtuosity (ported from Virtuosity.Fody).
      • PostSharp.Community.HelloWorld (a project template).

Note: Not all features are applicable to all PostSharp editions.