Releases: postsharp/PostSharp.Public
Release list
PostSharp 2026.0.18
PostSharp 2026.0.18 is based on v2026.0.17 and v2024.0.27.
This release forward-ports the upstream v2024.0.27 changes to the 2026.0 line: the build now retries transient file system errors during assembly resolution instead of failing with LA0014 or PS0264 or silently binding another build of an assembly, and binding failures are reported with a PS0265 binding record. It contains no other change.
Resources
- Milestone 2024.0.27 (upstream)
PostSharp 2024.0.27
PostSharp 2024.0.27 is based on v2024.0.26, plus the following changes.
This release makes the .NET Framework build host behave correctly when a file is temporarily inaccessible, for example because another process holds a lock on it or security software denies access to it (#152). A transient file error is now retried for a bounded time, an error that persists fails the build with its actual cause, and a transient error no longer changes which assembly the build uses.
Enhancements
- #144 When an aspect constructor or an assembly load fails because an assembly cannot be bound,
LA0014andPS0264are now followed by aPS0265message with the binding record: the lookups of the host assembly store, the last exception caught during the lookup, and the runtime binding log. A failure can therefore be diagnosed without a second build withPostSharpTrace=AssemblyBinder. The trace also distinguishes a missing file from a file that cannot be accessed. AFileNotFoundExceptionorFileLoadExceptionthat is not about an assembly is now reported asPS0099with its message, instead ofPS0264.
Fixes
- #148 Fixed intermittent
LA0014andPS0264errors with "The system cannot find the file specified" when an assembly file was temporarily inaccessible during weaving. Such an error could also make PostSharp or the runtime silently select another build of the assembly, for example themsilbuild instead of theamd64build. - #149 A file locked with a byte-range lock, and a file to which access is temporarily denied, are now retried like a file opened by another process. Every read of an assembly file, including the Global Assembly Cache query, is now retried.
- #147 Fixed the loading of an assembly image by the CLR host: a failed open of the file is now detected and reported with its original error instead of
error 6, and the shared image cache is now thread-safe and no longer blocks concurrent builds while one of them retries a locked file.
Resources
- Milestone
- Full Changelog: v2024.0.26...v2024.0.27
PostSharp 2026.0.17
PostSharp 2026.0.17 is based on v2026.0.16 and v2024.0.26.
This release forward-ports the upstream v2024.0.26 changes to the 2026.0 line: a license verification security fix, the fixes to concurrent weaving in the .NET Framework CLR host and the pipe server, several platform-binding and Windows PDB fixes, and support for PostSharpTrace="*".
Fixes
- #85 Fixed a
PS0264error when weaving a project that targetsnetcoreapp3.1on the .NET 10 SDK, whereSystem.Delegatewas resolved againstSystem.Private.CoreLib10.0.0.0 instead of the reference assemblies of the target framework.
Resources
- Milestone
- Milestone 2024.0.26 (upstream)
PostSharp 2024.0.26
PostSharp 2024.0.26 is based on v2024.0.25, plus the following changes.
Enhancements
- #82 Release notes are now published on the Releases page.
PostSharp-ReleaseNotes-<version>.htmlis no longer published with a release, andReleaseNotes.htmis no longer included in the compiler artifacts. Previously published release-notes files remain available.
Fixes
- #108 Fixed a license verification vulnerability.
- #138 Fixed builds that failed or stopped responding when several projects were woven concurrently by the .NET Framework CLR host and the pipe server, including intermittent
PS0264errors, builds that blocked indefinitely, cancellation that did not stop weaving, connection errors when the pipe server was busy, and an access violation when the compiler process exited after a successful build. - #121 Fixed a build failure with
AssertionFailedException"Encountered unknown implicit runtime framework" while binding platforms on the .NET Framework host. - #120 Fixed a build failure with
IndexOutOfRangeExceptionwhile writing the Windows PDB of a wovenasyncmethod or iterator. - #109 Fixed a build failure with
AssertionFailedExceptionwhen the .NET SDK advertises a targeting pack that is not installed. - #111 Fixed a build failure with
MSB4062on a prerelease package when the repository already defines thePostSharpVersionproperty. - #18
PostSharpTrace="*"now enables all trace categories whenPostSharpUsePipeServerisFalse, and an invalid trace category no longer crashes the compiler withTypeInitializationException.
Resources
- Milestone
- Full Changelog: v2024.0.25...v2024.0.26
PostSharp 2026.0.16
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
NullReferenceExceptionthat 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
- Milestone
- Milestone 2024.0.25 (upstream)
PostSharp 2024.0.25
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
NullReferenceExceptionwhen a user license entry was null. Woven assemblies no longer carry theEnhancedByPostSharpmanifest resource, PS0129 (This module has already been processed by PostSharp) is no longer emitted, andWatermarkTask,TaskNames.WatermarkandLicense.RequiresWatermarkhave 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
- Milestone
- Full Changelog: v2024.0.24...v2024.0.25
PostSharp 2026.0.15
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
- Milestone 2024.0.24 (upstream)
PostSharp 2026.0.14
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
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
IndexOutOfRangeExceptionthrown when reading a module whoseMethodDeftable contains exactly 65535 rows. - #72 Fixed the detection of
TargetFrameworkAttributeandReferenceAssemblyAttributein the assemblies that define these attributes themselves, such as mscorlib, System.Runtime, netstandard and the reference assemblies. - #73 A method whose
Paramtable disagrees with its signature is now reported as invalid metadata instead of failing the build with anIndexOutOfRangeException. - #74 The
Flagscolumns 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
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