PostSharp Ultimate 6.5.x

Released: Jan 20, 2020

v6.5.x 中的更新


Updated Mar 6, 2020


  • VSX: Cannot access service before is has been initialized in RoslynCodeFactory.workspace.
  • VSX: IndexOutOfRangeException when failed to parse target framework moniker.
  • VSX: ArgumentOutOfRangeException on missing declaration name in PostSharpDiagnosticAnalyzer.
  • Location resolution: Could not write lines to file PostSharpAnalyzers.config (build-time error).
  • VSX: ThreadMismatchException in EnhancedSpanProvider.GetEnhancedSpansImplAsync.
  • VSX: Exception thrown when CanCreateForCurrentCaretPosition hits and uninitialized service.
  • VSX: AssertionFailedException when retrieving own service.
  • VSX: ServiceNotFoundException when opening quick actions.
  • VSX: Project property page not properly registered.
  • AspectInitializationClient should inherit aspect's dependencies only if RuntimeInitialize is present.
  • Aspect Framework: Require dependencies are applied for RuntimeInitialize() pseudotransformations.
  • Inconsistent trace verbosity (PipeServer host vs command line hosts).
  • Caching: Missing XMLdoc for MemoryCacheBackend.
  • VSX: Installer: when there are many side-by-side VS 2017 installed, PostSharp installs into just one.


Updated Feb 6, 2020


  • Message Location: The analyzer takes much more time to initialize for NetStandard.
  • VSX: Code rewriters and quick action previews refactored.
  • VSX: Async dependency injection refactored.
  • VSX: Code actions for [Cache], [Command] and [DependencyProperty] aspects added.
  • Support for Docker.
  • Upgrade SDK to 3.1.101.
  • Caching: Support for ASP.NET Core MemoryCache.


  • VSX: Installer passes without any error on machine without any compatible VS version.
  • Caching.Redis: update the StackExchange.Redis package.
  • Caching.Redis: add timeout in RedisNotificationQueue.Init.
  • Caching: Azure: migration to new API and support for .NET Standard.
  • Caching (Azure): AzureCacheInvalidator should confirm message reception using BrokeredMessage.Complete.
  • Initialize common directories before loading the project.


Updated Jan 20, 2020


  • Upgrades C++ projects to Windows 10 SDK.
  • Upgrades C++ projects to C++ SDK v142 (VS 2019).
  • Installer: Shows VSIX log to allow self-diagnosis of installation issues.
  • Installer: Adds option to close/kill open processes.
  • Installer: Allows selection of target VS instances.


  • VSX: Visual Studio usage's VisualStudioVersion is unusable for analyzing VS usage.
  • Multicasting: AllowMultiple=false does not raise an error when two attributes are directly added to the same declaration.
    Breaking Change: It is now a build-time error to declare two attributes on the same element if their MulticastAttributeUsage.AllowMultiple is false. Previously, one of those attributes was silently removed.
  • Aspect Framework: RuntimeInitialize call order does not respect aspect dependencies.
    Breaking Change: The order of RuntimeInitialize() calls of two aspects on the same type may now be different. Also, some aspects weren't ordered correctly may now cause build errors. You can fix these build errors by using ordering those aspects.
  • Aspect Framework: PostSharp copies internal attribute declarations to other assemblies.
    Breaking Change: It is now a build-time error to attempt to copy assembly-internal attributes using [CopyAttributes], or copying them implicitly on parameters, type parameters and return values using [IntroduceMember].
  • Aspect Framework: Encapsulating a field in a generic type creates a duplicate MemberRef.
    Breaking Change: Renaming a FieldRef or a MemberRef using PostSharp.SDK now invalidates the enumerator on collections in TypeDef, TypeRef and TypeSpec classes.