Comments
Sort by recent activity
Hi rick105, Thank you for reaching out on the Redgate forums regarding your SmartAssembly concern. Interesting that you have a variance between VS build process over running it through SmartAssembly GUI directly. Since your other .NET 8.0 projects obfuscate correctly, here are some things to check: 1️⃣ Compare SA Logs (Build vs. UI) – Check if the build log shows SA skipping obfuscation or using the wrong input/output paths. 2️⃣ Check the SmartAssembly Project File (.saproj) – Open it in a text editor and compare it to a working one. Make sure dependency merge/embed settings match. 3️⃣ Investigate MSBuild Process – Run MSBuild /verbosity:diagnostic to see if SA is being invoked properly for this project. 4️⃣ Check the SA Task in .csproj – Verify that SA is actually being triggered. You might have something like: <Target Name="AfterBuild">
<Exec Command=""$(SmartAssemblyPath)\SmartAssembly.com" /build MyProject.saproj" />
</Target> Try running this command manually to see if it works outside the build. 5️⃣ Check Dependencies – Does this project reference anything different, like native libraries or unmanaged code? 6️⃣ Rebuild from Scratch – Try a full clean (bin/obj deletion) and test with a fresh SA project file. If nothing stands out, feel free to share your SA logs and .saproj file so we can investigate further I have generated a secure file-link to provide any logs/project files. This link is valid for 14 days. https://files.red-gate.com/requests/CHkY0nxjxnmEUmVu8HZACE / comments
Official comment
Hi rick105, Thank you for reaching out on the Redgate forums regarding your SmartAssembly concern.Interesting that you have a variance between VS build process over running it through SmartAssembly...
Hi rick105 Thank you for reaching out on the Redgate forums regarding your SmartAssembly question regarding obfuscating into a single file app. When publishing a .NET application as a single file, SmartAssembly can still obfuscate it, but some extra steps are required since the assembly is embedded within the single file executable. Here’s a possible method on how this can be achieved 1. Publish Without Single File First SmartAssembly needs access to the raw assembly (.dll ) before it gets bundled into a single file.
Publish your app without the PublishSingleFile option first: dotnet publish -c Release -r win-x64 --self-contained false
This generates a normal set of .dll files in the bin\Release\netX\publish\ folder.
2. Obfuscate with SmartAssembly
Open SmartAssembly and create a new project.
Add your main application .dll (e.g., MyApp.dll ).
Configure obfuscation, string encryption, control flow obfuscation, etc.
Build the obfuscated .dll .
3. Publish as Single File Manually Now, repackage the obfuscated assembly into a single file:
Replace the original .dll with the obfuscated version.
Run the dotnet publish command with single file enabled: dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true -p:IncludeAllContentForSelfExtract=true --self-contained false The IncludeAllContentForSelfExtract=true ensures embedded assemblies can still be loaded properly.
4. Test the Application
Run the generated .exe and verify functionality.
Use a decompiler to confirm that obfuscation is applied.
Hopefully this process can be used to obfuscate your project and end with a single file executable as desired. / comments
Official comment
Hi rick105 Thank you for reaching out on the Redgate forums regarding your SmartAssembly question regarding obfuscating into a single file app.When publishing a .NET application as a single file, S...
Hi David15 Thank you for reaching out on the Redgate forums regarding your SmartAssembly licensing question. SmartAssembly's deactivation process affects all instances on the machine because its licensing system is server-based than individual user/instance. When you deactivate a license, it removes it from the system-wide activation store, impacting all instances on that machine. Here are some potential workarounds, provided you have appropriate licensing:
Use a Virtual Machine – If you need separate licenses for different instances, running SmartAssembly in a VM with its own activation can isolate licenses.
Manually Re-activate Another Instance – After deactivation, you can manually re-activate only the instance you need.
/ comments
Official comment
Hi David15Thank you for reaching out on the Redgate forums regarding your SmartAssembly licensing question. SmartAssembly's deactivation process affects all instances on the machine because its lic...
Hi TevorMcComb, Thank you for reaching out on the Redgate forums regarding your SQL Prompt variable warning. I've recreated a similar situation where variables are set within a SELECT statement and prompt this warning. I think this is triggered because the variables are set, but not technically used in that senses. The warning cleared once the variables were used later in the script. It's a bit of peculiar behaviour though. If I set a variable to have a value outside a SELECT block, this warning didn't appear. I'm going to put this through to our developers to see if there is possibly a bug in the behaviour. In the interim, though, this should just be a warning and having unused variables would not affect code execution or formatting. / comments
Official comment
Hi TevorMcComb, Thank you for reaching out on the Redgate forums regarding your SQL Prompt variable warning.I've recreated a similar situation where variables are set within a SELECT statement and...
Hi Infocorp, Thank you for reaching out on the Redgate forums. Looking into this, Error Code 9 is most often returned when the program is closed by the OS or another process. The most common cause we've seen previously is memory overflow, but the reason may be different (Antivirus software, forced close of running process etc). Are you able to create documentation from another database, or test making it from another machine and verify if that works? / comments
Official comment
Hi Infocorp,Thank you for reaching out on the Redgate forums. Looking into this, Error Code 9 is most often returned when the program is closed by the OS or another process. The most common cause w...
Hi Phil, Thanks for reaching out on the Redgate forums regarding your SQL Data Compare concern. I've looked through and couldn't see any explicit changes that may have been connected to this datatype. Doing some testing I wasn't able to trigger anything immediate to show an issue - do you have an example that you are able to share to help replicate this if it is indeed a bug/regression that needs to be escalated. We do have some releases since 15.4.10, it may be worth patching to see if this is resolved already. Download link for V15.4.12 can be found here: https://download.red-gate.com/checkforupdates/SQLDataCompare/SQLDataCompare_15.4.12.28089.exe / comments
Official comment
Hi Phil, Thanks for reaching out on the Redgate forums regarding your SQL Data Compare concern. I've looked through and couldn't see any explicit changes that may have been connected to this dataty...
Hi SergeyK for providing your solution. Your solution does makes sense, as the DDL trigger could indeed be interfering with the clone creation process. Here are some possible reasons why:
Triggers and Permissions: DDL triggers can perform actions like logging schema changes, and in some cases, these actions can require additional permissions or affect the state of the database. If the trigger is set to log schema changes to another database, it could be trying to access resources or log data that isn't available or correctly mapped in the cloned environment.
Backup Creation Process: When creating a clone, Redgate SQL Clone effectively takes a snapshot of the database. If a DDL trigger is active, it might attempt to execute additional operations that can interfere with the cloning process, especially if it tries to reference external resources or databases that the clone might not have access to at that moment.
Disabling the Trigger: Disabling the DDL trigger before taking the backup makes sense because it prevents any additional operations from being triggered during the clone creation, ensuring that the backup is clean and doesn't have any external dependencies.
To summarize: The issue likely arose because the DDL trigger was executing and possibly trying to log changes to an external database, leading to conflicts or missing mappings. Disabling or removing the trigger resolves this issue, as it prevents those additional operations from interfering with the clone creation. Glad that you have resolved your concern, and this information may come in useful in the future for someone else getting the same error. / comments
Official comment
Hi SergeyK for providing your solution. Your solution does makes sense, as the DDL trigger could indeed be interfering with the clone creation process. Here are some possible reasons why:
Triggers...
Hi Adam, A fix has been included in the latest release of Dependency Tracker for the XML export option. Can you patch at your earliest convenience and verify this has been fixed for you Release notes: https://documentation.red-gate.com/sdt/release-notes-and-other-versions/sql-dependency-tracker-3-4-release-notes
Version 3.4.4 - March 03rd, 2025
Fixes
Fixed an issue to show only the visible objects in XML export
Download link: https://download.red-gate.com/checkforupdates/SQLDependencyTracker/SQLDependencyTracker_3.4.4.6074.exe / comments
Official comment
Hi Adam,A fix has been included in the latest release of Dependency Tracker for the XML export option.Can you patch at your earliest convenience and verify this has been fixed for you Release notes...
Hi all - confirming that we are starting to see releases of our Toolbelt products with SSMS21 preview functionality. It is noted that this is in preview and not officially supported until SSMS21 GA is available. There will be official notifications as our products officially support SSMS21 through our blogs, release notes & product requirement documentation. SQL History & SQL Prompt will install into SSMS21 (preview) for release V10.16.6 https://download.red-gate.com/checkforupdates/SQLPrompt/SQLPrompt_10.16.6.15646.exe There are some one-time changes to make as SSMS21 is VS based. Thank you to @RightTurnsOnly for sharing the link: Refer section - Running SQL Prompt with SSMS 21 Preview https://documentation.red-gate.com/sp/getting-started/installing-and-running-sql-prompt We are looking forward to announcing other products joining SQL Prompt in SSMS21 / comments
Official comment
Hi all - confirming that we are starting to see releases of our Toolbelt products with SSMS21 preview functionality. It is noted that this is in preview and not officially supported until SSMS21 GA...
Hi NSRjecross Thank you for reaching out on the Redgate forums regarding your odd SQL Prompt behaviour. That initially sounds like SQL Prompt’s Find Invalid Objects feature is getting confused due to name caching or some kind of indexing issue, leading to incorrect object names in the script preview. Here are some possible suggestions to clear this variance:
Force Refresh SQL Prompt's Cache
In SSMS, go to SQL Prompt → Refresh Suggestions (or Ctrl + Shift + D ).
This should clear cached object names and reload them.
Manually Verify the Views
Run: SELECT name FROM sys.views WHERE name LIKE '%Vein%';
Check if any unexpected naming inconsistencies exist at the database level.
Check for Ghost Entries in sys.sql_modules
If the objects were renamed recently, stale metadata could be an issue.
Run: SELECT object_id, definition FROM sys.sql_modules WHERE object_id IN (SELECT object_id FROM sys.views);
See if any unexpected names appear.
Try SSMS’s Built-in Scripting InsteadIf SQL Prompt's Find Invalid Objects is unreliable, use SSMS:
Right-click the invalid view → Script as ALTER
Compare with what SQL Prompt generates.
Check SQL Prompt’s Log File for Errors
Logs are usually in %LOCALAPPDATA%\Red Gate\SQL Prompt\Log\ .
Look for errors or inconsistencies.
Test with a New SSMS Session
Restart SSMS and load Find Invalid Objects again.
If possible, test on another machine to rule out local corruption.
/ comments
Official comment
Hi NSRjecross Thank you for reaching out on the Redgate forums regarding your odd SQL Prompt behaviour.That initially sounds like SQL Prompt’s Find Invalid Objects feature is getting confused due ...