SmartAssembly 8.0 release notes
Published 01 December 2020
8.2.0 - December 4th, 2023
Features
Support for .NET 7 assemblies.
Improvements
Internal optimizations and improvements in preparation for .NET 8 support and future features.
Fixes
- Fixed issues related to incorrect dependency resolution.
Fixed WPF exception handling.
- Fixed OS version reporting.
- Fixed issue with import module attributes being pruned.
- Fixed issue with multiple instances of SmartAssembly sharing the same resource and can now be run concurrently.
8.1.2 - October 6th, 2022
Improvements
SA-2492
: Extended scope of key size limitation for .snk files. Previously valid key sizes were 1024, 2048, 4096, 8192 and 16384 bits. Now key's bit-size is only constrained to be of full byte (divisible by 8), and byte-size have to be divisible by 2. This allows to use previously unsupported keys like 3072bits.
Fixes
SA-2388
: SmartAssembly will no longer show "Multi-module assemblies are not supported" error when multi-module assembly is not required to be processed.
8.1.1 - July 19th, 2022
Features
SA-2478:
Support for .NET 6 assemblies.
Improvements
SA-2488:
Improved warning message when processed assembly has a strong name and any of unmerged dependency has not. Warning message will now list these dependencies.
Fixes
SA-2484:
Fixed issue with serializing exception report with variables of ref struct type.SA-2487:
Fixed issue with SmartAssembly incorrectly detects installed versions of WindowsDesktop.App.
8.1.0 - December 6th, 2021
Fixes
SA-2479:
Fixed an issue with SA unable to load runtime config.
8.0.4 - October 7th, 2021
Features
SA-2457,SA-2463:
Addedactivateserial
andlicensetype
command line options to allow users to activate SA after installation
Fixes
SA-2421:
Fixed an issue with SA not allowing to merge/embed assemblies with "Assembly is not located in the input directory" reason when assemblies are in input directory.SA-2471:
Fixed an issue with satellite assemblies without specified culture causing an exception.
8.0.3 - June 28th, 2021
Fixes
SA-2453:
Fixed an issue with `UseImprovedEncoding` option causing exception when specific combination of features were selected.
8.0.2 - March 31st, 2021
Improvements
SA-1695,SA-2442:
It's now possible to run applications processed with SmartAssembly's Error and Feature Reporting, Embedding, Resource Encryption and Compression, and Strings Encoding on machines with FIPS compliance enabled.
Breaking changes
- SmartAssembly SDK libraries were removed from the installer. They are now only available via NuGet:
RedGate.SmartAssembly.AssemblyResolverCore
— use to manually attach SmartAssembly embedded dependencies resolver to custom app domains. See: Merging assemblies others depend on.RedGate.SmartAssembly.ReportException
— use to manually send an error report from your application. See: Error reporting with the SDK.RedGate.SmartAssembly.ReportUsage
— use to manually send a feature usage report from your application. See: Feature usage reporting with the SDK.RedGate.SmartAssembly.SmartExceptionsCore
— use to create a custom error reporting template. See: Error reporting with the SDK.RedGate.SmartAssembly.SmartUsageCore
— use to create a custom feature usage reporting template. See: Feature usage reporting with the SDK.RedGate.SmartAssembly.SDK
— use to access SmartAssembly database, decode stack trace, and more.
- ⚠ Custom error and feature reporting templates built with SmartAssembly 7 must be rebuilt using the appropriate SmartExceptionsCore or SmartUsageCore package listed above. This only applies to .NET Standard templates, and only if they referenced
SmartExceptionsCore_NetStandard.dll
orSmartUsageCore_NetStandard.dll
. - Sample error reporting and feature usage reporting templates are now available on our GitHub repository: https://github.com/red-gate/SmartAssembly-demos
8.0.1 - February 9th, 2021
FREQUENT UPDATES RELEASE
Improvements
SA-2423:
A newSaveEncryptedReportOrThrow
method was added alongside the existingSaveEncryptedReport
method in the error reporting SDK. It allows you to better handle potential issues when saving the error report in your custom error reporting template by throwing any exceptions that arise.SA-2435:
When building an assembly with a reference to an assembly with invalid metadata, SmartAssembly will offer to ignore the invalid metadata if it causes the build to fail.
Fixes
SA-1672:
Fixed an issue where attempting to open an assembly with multiple mscorlib references and one of them beingmscorlib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
, would throwNotSupportedException: Error calculating CLR version for module <FileName>.dll
.SA-2430:
Obfuscation of compiler-generated serializable types now works correctly when building from command-line of SmartAssembly Standard edition.SA-2431:
Fixed an issue where building a .NET Standard 2.1 assembly without .deps.json would fail due to "invalid symbol".
8.0.0 - December 17th, 2020
FREQUENT UPDATES RELEASE
This version introduces basic support for .NET 5 assemblies. More features and fixes are expected in subsequent releases. Refer to Known issues section for more information.
Features
SA-2406:
It's now possible to redirect SmartAssembly logs to MSBuild output when using SmartAssembly MSBuild Tasks. See Enable logging.
Improvements
SA-2187:
With this major version, SmartAssembly settings will be automatically carried over from previous versions. See Upgrading from SA 7 to SA 8 for more details
Breaking changes
SmartAssembly.MSBuild.Tasks
assembly is no longer available in the GAC. To integrate SmartAssembly into your build, please use theRedGate.SmartAssembly.MSBuild
NuGet package. See Using SmartAssembly with MSBuild.
Known issues
This version of SmartAssembly is considered a preview. Some .NET 5 and C# 9 features may not be fully implemented yet which may cause issues described below. We plan to fix these issues in future updates of SmartAssembly.
If you encounter an issue not included on this list, please use the "Contact us" link within the SmartAssembly window.
SA-2391:
C# 9.0 records: Compiler-generatedPrintMembers
method may reveal original property names, and a compiler-generatedToString
method may reveal the original record name.- Workaround: Implement the
PrintMembers
andToString
methods yourself to prevent compiler from generating a default ones:public record Test(string Prop1, int Prop2) { public override string ToString() => string.Empty; protected virtual bool PrintMembers(StringBuilder builder) => false; }
- Workaround: Implement the
SA-2382:
Blazor: Obfuscation of theApp
class causesTypeLoadException
on runtime.- Workaround: Exclude the
App
class from obfuscation using the Exclusions dialog or custom attributes.
- Workaround: Exclude the
SA-2393:
Blazor: Adding error and feature reporting may break the application.- Workaround: disable error and feature reporting.
SA-2394:
Blazor (WebAssembly): Enabling Control Flow Obfuscation may break the application.- Workaround: disable Control Flow Obfuscation.
SA-2396:
Blazor (WebAssembly): Enabling References Dynamic Proxy may cause the application to hang.- Workaround: disable References Dynamic Proxy.
SA-2397:
Blazor (WebAssembly): Enabling Strings Encoding with compression and encryption may break the application.- Workaround: disable "I want to compress and encrypt the encoded strings" checkbox. Note that other Strings Encoding features (such as improved protection and caching) can be used with no issues.