Activity overview
Latest activity by Jon Kirkwood
Hi Tim Thank you for reaching out on the Redgate forums regarding your SmartAssembly query. You're correct that obfuscating a large solution with multiple assemblies — especially when working with ReadyToRun, self-contained builds — requires a bit more setup, particularly without using the merge feature. The recommended approach in this scenario is to use a traversal project. Here’s how that typically works:
Create a .saproj file for each assembly you want to obfuscate. Each .saproj will define the input/output paths and relevant obfuscation settings.
Set up a traversal MSBuild project that sequentially runs SmartAssembly for each of those .saproj files. This is done by referencing the SmartAssembly MSBuild task like so:<SmartAssembly ProjectFile="Path\To\YourAssembly.saproj" />
These entries can be listed one after another inside a custom MSBuild target, allowing you to run all obfuscation steps in a single build pass. Each project will need to be defined explicitly, as SmartAssembly does not currently support wildcards or dynamic project discovery.
Ensure obfuscation occurs before the ReadyToRun compilation — obfuscating after native image generation isn’t supported, as native images cannot be modified by SmartAssembly.
While this process is more manual than using the merge feature, it provides the flexibility needed for large applications deploying assemblies individually. / comments
Official comment
Hi TimThank you for reaching out on the Redgate forums regarding your SmartAssembly query. You're correct that obfuscating a large solution with multiple assemblies — especially when working with R...
Hi all, thank you for your patience on this issue. Our developers have reproduced the issue with DATETIMEOFFSET producing a double dash (--) value and in some cases a day value of 0. I understand this to be affecting months with 30 days in them. This is logged as a high priority bug to be fixed in an upcoming release of Data Compare. In testing I've found that you may be able to roll back to V15.4.7 to temporarily resolve this bug Download link available here: https://download.red-gate.com/checkforupdates/SQLDataCompare/SQLDataCompare_15.4.7.27827.exe / comments
Hi all, thank you for your patience on this issue.Our developers have reproduced the issue with DATETIMEOFFSET producing a double dash (--) value and in some cases a day value of 0. I understand th...
Hi LifeToCodeAnotherDay, Thank you for reaching out on the Redgate forums regarding your SQL Prompt query. I can see that there is not currently any handling for OFFSET/FETCH clauses and it will automatically append it to the previous line with standard formatting styles. Having a look on our UserVoice site I did see an open feature request asking for similar functionality to what you have outlined here; I would first ask if you can view this request and add your vote + any comments on how the lack of this functionality impacts your workflow. I can also assist by escalating this internally with our development teams to see if the feature request can be implemented into SQL Prompt in a future release. UserVoice link - https://redgate.uservoice.com/forums/94413-sql-prompt/suggestions/36307462-add-formatting-support-for-offset-and-fetch-next / comments
Official comment
Hi LifeToCodeAnotherDay, Thank you for reaching out on the Redgate forums regarding your SQL Prompt query. I can see that there is not currently any handling for OFFSET/FETCH clauses and it will au...
It can sometimes take a while for objects to appear in the search parameters. You can force an update of the index by selecting Index > Reindex (CTRL + ALT + D) This will refresh SQL Prompt and search for newly created or modified objects [image] / comments
It can sometimes take a while for objects to appear in the search parameters. You can force an update of the index by selecting Index > Reindex (CTRL + ALT + D)This will refresh SQL Prompt and sear...
Thank you for your patience whilst this has been worked on. Our developers have pushed a fix for this into an upcoming Prompt release. Please keep an eye out for this release in the SQL Prompt release notes https://documentation.red-gate.com/sp/release-notes-and-other-versions/sql-prompt-10-16-release-notes We would anticipate this to be part of release V10.16.10.a / comments
Thank you for your patience whilst this has been worked on.Our developers have pushed a fix for this into an upcoming Prompt release. Please keep an eye out for this release in the SQL Prompt relea...
Hi Sean, What method of staying logged in do you use, is it the checkbox when you first access the Montor Web front-end? There maybe a timeout value built into this session, however we are thinking this is closer to 24 hours and not 1-2. Do you know if your Monitor deployment is using IIS or Kestrel? / comments
Official comment
Hi Sean, What method of staying logged in do you use, is it the checkbox when you first access the Montor Web front-end?There maybe a timeout value built into this session, however we are thinking ...
Hi PradnayaN, Thanks for reaching out on the Redgate forums. This sounds like an issue with obfuscating assemblies that are involved in reflection, dependency injection, or are entry points. We recommend starting with minimal obfuscation settings and excluding the main assembly and any shared contracts or reflection-heavy code to ensure runtime stability. Here are some initial steps to try first to see if you can clear your issues with obfuscation
Don't Obfuscate Entry Point or Shared Contracts Exclude:
Program.dll or main project.
Any shared interfaces or base class libraries (used in reflection or dependency injection).
DTOs, gRPC contracts, Razor components, etc.
➜ Use [DoNotObfuscate] or SmartAssembly project file filters.
Turn Off Type/Method Renaming for Reflection-Heavy Code If you use:
Dependency Injection
Reflection
JSON serialization/deserialization ➜ Obfuscated names won’t match expected strings.
Fix: Add [Obfuscation(Exclude = true)] or exclude via SA project rules.
Assembly Load Failures? If your app dynamically loads assemblies, you must not obfuscate public types or names unless explicitly handled.
➜ Check AppDomain.AssemblyResolve or plugin patterns.
Use Debug Logs or Fusion Log Viewer Might help to catch missing method/assembly load failures.
Minimal Working Obfuscation
Start with: <Obfuscation NameMangling="0" FieldsNameMangling="0" />
Then incrementally raise levels after testing that the previous setting worked.
/ comments
Official comment
Hi PradnayaN, Thanks for reaching out on the Redgate forums.This sounds like an issue with obfuscating assemblies that are involved in reflection, dependency injection, or are entry points. We reco...
Hi Carman Houston, Thank you for reaching out on the Redgate forums regarding this SSMS21 install anomaly. I've replicated this and can confirm that Prompt is creating it's pkgdef extension data in the standard SSMS21 install folder even without SSMS21 installed. This is not ideal. I shall escalate this to our developers to ensure that the installer more accurately determines the installed versions of SSMS to load the extension into. / comments
Official comment
Hi Carman Houston, Thank you for reaching out on the Redgate forums regarding this SSMS21 install anomaly. I've replicated this and can confirm that Prompt is creating it's pkgdef extension data in...
Sorry to hear that is happening, are you able to confirm what version of SSMS you are using SQL Search in? If you are using it in SSMS21, can you confirm if the same issues with refreshing databases are occurring in SSMS18-20 also? We have recently implemented preview support for SSMS21 and may have some bugs like this occurring. If you are using SSMS18-20, can you locate the most recent log file and provide a copy of it for investigation. You can access it in the Help > Logging > Locate log files menu option. [image] You can provide logs to this secure file link, it will be valid for 14 days: https://files.red-gate.com/requests/Fz2UUZT776sd7QtK0lXeEo / comments
Sorry to hear that is happening, are you able to confirm what version of SSMS you are using SQL Search in? If you are using it in SSMS21, can you confirm if the same issues with refreshing database...
Hi Axium7, Thank you for reaching out on the Redgate forums regarding your SQL Search inquiry. Unfortunately, SQL Search does not store any default settings that can be recalled. Drop-down selection is recalled for the active SSMS session, and this data is dropped when that session closes. The displayed information in these drop-downs depends on a connection to your database instances so they can be populated. This is generated when a connection is made and isn't stored outside the active session. You can post this on our UserVoice forum as a feature request if this is something you'd like to see: https://redgate.uservoice.com/forums/101149-sql-search / comments
Official comment
Hi Axium7, Thank you for reaching out on the Redgate forums regarding your SQL Search inquiry. Unfortunately, SQL Search does not store any default settings that can be recalled. Drop-down selectio...