Skip to content

Releases: postsharp/PostSharp.Public

PostSharp 2026.0.16

Choose a tag to compare

@gfraiteur gfraiteur released this 05 Aug 19:39

PostSharp 2026.0.16 is based on v2026.0.15 and v2024.0.25.

This release forward-ports the upstream v2024.0.25 changes to the 2026.0 line: the removal of the obsolete watermark task, and the fixes to the Customer Experience Improvement Program uploader.

Fixes

  • #78 Fixed an unhandled NullReferenceException that aborted the build when a referenced assembly declared an invalid multicast attribute. The build now fails on the PS0051 diagnostic that was already reported for it.
  • #79 Fixed the licensing service failing to initialize when the same license key is listed more than once in the registry, which left the Visual Studio extension permanently without a licensing state.

Resources

PostSharp 2024.0.25

Choose a tag to compare

@gfraiteur gfraiteur released this 05 Aug 19:39

PostSharp 2024.0.25 is based on v2024.0.24, plus the following changes.

Enhancements

  • #75 Removed the obsolete watermark task, which could abort a compilation with a PS0099 unhandled NullReferenceException when a user license entry was null. Woven assemblies no longer carry the EnhancedByPostSharp manifest resource, PS0129 (This module has already been processed by PostSharp) is no longer emitted, and WatermarkTask, TaskNames.Watermark and License.RequiresWatermark have been removed from the compile-time SDK.

Fixes

  • #77 Fixed crashes of the Customer Experience Improvement Program uploader when the upload queue was empty, when a queued file was locked, or when BITS refused the transfer job. Orphan BITS jobs left behind by earlier failures are now cleaned up, a job that makes no progress for three days is abandoned, and the pending-report queue is capped at 50 files and 30 days.

Resources

PostSharp 2026.0.15

Choose a tag to compare

@gfraiteur gfraiteur released this 24 Jul 06:25

PostSharp 2026.0.15 is based on v2026.0.14 and v2024.0.24.

This release forward-ports the upstream v2024.0.24 fixes to the 2026.0 line: several metadata-reading defects in the compiler, a concurrency defect that could hang or crash the disposal of a caching back-end, a PS0264 assembly load failure on the cached deps.json path, and the EULA update to v2026-Q3.

Resources

PostSharp 2026.0.14

Choose a tag to compare

@gfraiteur gfraiteur released this 24 Jul 06:36

PostSharp 2026.0.14 is based on v2026.0.13, plus the following changes.

Fixes

  • #69 Fixed the loading of mixed-mode assemblies whose name starts with System. but which carry a non-system public key token (for example System.Data.SQLite) in the .NET Framework build host, which failed with PS0264 (0x80131515).

Resources

PostSharp 2024.0.24

Choose a tag to compare

@gfraiteur gfraiteur released this 24 Jul 06:33

PostSharp 2024.0.24 is based on v2024.0.23, plus the following changes.

Fixes

  • #70 Fixed concurrency defects in the wait primitive behind BackgroundTaskScheduler, which could hang or crash the disposal of a caching back-end: a lost wakeup caused by a missing memory fence, an asynchronous continuation scheduled twice, and a wait operation that could be woken spuriously by an unrelated wait on the same thread.
  • #71 Fixed an IndexOutOfRangeException thrown when reading a module whose MethodDef table contains exactly 65535 rows.
  • #72 Fixed the detection of TargetFrameworkAttribute and ReferenceAssemblyAttribute in the assemblies that define these attributes themselves, such as mscorlib, System.Runtime, netstandard and the reference assemblies.
  • #73 A method whose Param table disagrees with its signature is now reported as invalid metadata instead of failing the build with an IndexOutOfRangeException.
  • #74 The Flags columns of the metadata tables are now read as unsigned values, so that the attributes of a literal field, or of a method that carries declarative security, no longer have their upper 16 bits set.
  • #76 Fixed a PS0264 assembly load failure that occurred when a project referenced a higher version of a package that the PostSharp compiler also depends on, and the build reused the cached deps.json.

Other changes

  • #68 Updated the EULA to v2026-Q3.

Resources

PostSharp 2026.0.7

Choose a tag to compare

@gfraiteur gfraiteur released this 25 Mar 17:36

PostSharp 2026.0.7 is based on v2026.0.6, plus the following changes.

The only package with functional changes is PostSharp.Patterns.Caching.Redis. All other packages are version bumps only.

Fixes

  • #2 Redis caching: Notification queue not suspended when background task queue is overloaded
  • #3 Race condition in GetItemAsyncCore causes empty forward dependencies under concurrent load
  • #4 Dependency keys not unescaped when reading from Redis cache
  • #12 ObjectDisposedException instead of RedisConnectionException when connecting to unreachable Redis endpoint
  • #13 Redis ShortKey encoding not reversible for keys containing literal percent-encoded sequences

Resources

PostSharp 2026.0.6

Choose a tag to compare

@gfraiteur gfraiteur released this 19 Mar 15:07

PostSharp 2026.0.6 is based on 2026.0.5 and v2025.1.14, plus the following changes.

(No additional changes.)

PostSharp 2024.0.23

Choose a tag to compare

@gfraiteur gfraiteur released this 27 Jun 10:13

PostSharp 2024.0.23 is primarily a security and privacy hardening release. It closes the June 2026 security & privacy review (#56): it hardens the build toolchain against local attacks, moves all telemetry to HTTPS, minimizes and de-correlates collected data, and removes data-collection features outright. It also fixes a build-reproducibility defect in the Windows-PDB path. It is based on v2024.0.22 and corresponds to build 2024.0.23.

Security & privacy hardening

Transport security

  • #48 Upload CEIP/telemetry over HTTPS instead of plaintext HTTP.
  • #63 Warn when a license server is configured over http:// (which sends user and machine names in cleartext).

Local-machine hardening (shared/multi-user machines)

  • #45 Default the cache, binary, and dependency directories to per-user locations to prevent DLL planting.
  • #46 Restrict the .NET Framework build pipe server to clients of the same user and elevation level.
  • #50 Scope the Windows CPU-throttle semaphore to the current user to prevent a local build DoS.
  • #51 Relocate the compiler-host exception dump to a per-user directory so other local users cannot read it.
  • #47 Disable external XML entity resolution (XXE) when parsing the Learning Hub content feed.

Data minimization & privacy

  • #53 Minimize uploaded exception reports: redact secrets, omit the exception message and data, and redact user assembly identities.
  • #54 Telemetry opt-out now stops queued uploads and purges the upload queue.
  • #55 Removed the per-usage license telemetry that uploaded reversibly hashed type names.
  • #62 Rotate the telemetry device identifier on the first Monday of each month to limit cross-session correlation.
  • #65 Removed the newsletter subscription offer and all email-address collection from the license registration UI.
  • #66 Removed the Areas of Interest selection and the PostSharp Learning Hub tool window from the product.

Dependencies

  • #61 Updated log4net to 3.3.1 on modern target frameworks to address CVE-2026-40021.

Other changes

  • #35 Deterministic builds emitting a Windows PDB are now reproducible for woven types with very long fully-qualified names.
  • #36 Windows PDBs no longer get garbage, run-dependent module names for woven types with long fully-qualified names.
  • #58 Add the PostSharpAllowPipeServerWhenUnattended MSBuild property to use the pipe server in unattended builds.

Resources

PostSharp 2024.0.22

Choose a tag to compare

@gfraiteur gfraiteur released this 18 Mar 10:41

Fixes

  • #7 Implement Mutex ACL support
  • #5 PostSharp dependency restore ignores NuGet.config

Resources

PostSharp 2026.0.13

Choose a tag to compare

@gfraiteur gfraiteur released this 27 Jun 10:32

PostSharp 2026.0.13 is based on v2026.0.12 and v2024.0.23, plus the following changes.

The upstream v2024.0.23 release is a security and privacy hardening update: it hardens the build toolchain against local attacks (DLL planting, named-pipe hardening, per-user cache/temp directories), moves all telemetry to HTTPS, and minimizes and de-correlates the data collected.

Fixes

  • #39 Upgraded the compiler's NuGet.Packaging dependency to 6.14.3 to clear the NU1901 vulnerability warning in user builds.
  • #44 Fixed a caching backend dispose deadlock caused by an unbalanced background-task counter.
  • #64 Fixed a spurious PS0242 license error when building through the .NET Framework pipe server.

Resources