SmartAssembly
Latest version: 6.7
Knowledge Base
Using Smartassembly to obfuscate a windows service
Category: Troubleshooting & error messages
Date: 10 Dec 2010
Product: SmartAssembly
Obfuscation a windows service that is installed using InstallUtil.exe from the Net framework leads to many errors, especially System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types
There is a known issue with the installation of a Windows service if you embed one or more dependencies.
In this case, you need to manually install the windows service and not rely on "InstallUtil.exe" (because it will not be able to load the dependencies).
There is a basic sample on how to register a Windows Service without using InstallUtil.exe here:
http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx
Also, any exception occurring during the OnStart() and OnStop() events will not be reported by {smartassembly} exception reporting feature.
This is a limitation due to the fact that the CLR already catch the exceptions in these events and report them in the logs:
private unsafe void ServiceQueuedMainCallback(object state) {
try
{
this.OnStart(strArray);
this.WriteEventLogEntry(Res.GetString("StartSuccessful"));
}
catch (Exception exception1)
{
this.WriteEventLogEntry(Res.GetString("StartFailed", new object[] { exception.ToString() }), 1);
}
}
So, you need to check into window's eventlog to get more information on the exception.
Excepting the above, {smartassembly} doesn't have any specific issue with windows service but, as always if you use Reflection in your assembly, you need to exclude for the obfuscation (and pruning) the members called by Reflection in {smartassembly} project or by using custom attributes:
http://www.smartassembly.com/download/HowToUseCustomAttributes.pdf
Document ID: KB201012000473 Keywords: smartassembly,windows,service
Was this article helpful?
SmartAssembly
- Using Smartassembly to obfuscate a windows service
- Obfuscation not renaming identically-named methods in different classes
- Serialization exceptions occurring in obfuscated assemblies
- SmartAssembly skipping obfuscation of some classes in your assembly
- SmartAssembly is not merging or embedding all assembly dependencies
- Can I customize the path to the MDB database?
- System.InvalidOperationException when attempting to connect to local SmartAssembly database
- Protecting website code using SmartAssembly
- Visual Studio Deployment Projects including unprotected builds
- SmartAssembly MSBUILD tasks failing because of difference in log4net assembly
- SmartAssembly Error Reporting: This application has submitted too many reports
- The assembly is being merged, but the dependent assembly isn't
- ERR 2002: Server did not recognize the value of HTTP Header SOAPAction
- The error report is not associated with a valid project ID - SmartAssembly
- Application built with an evaluation edition of SmartAssembly
- How end users can change their participation in Feature Usage Reporting
- Log file for SmartAssembly
- Moving SmartAssembly to another computer
- 'Using JET databases is not possible in 64-bit applications' error when using MSBuild or TFS
- SmartAssembly stack trace is invalid when Method Parent Obfuscation is enabled
- Upgrading SmartAssembly version 4.x to version 5
- Upgrading SmartAssembly Standard to Professional
- Problems building WPF applications with SmartAssembly 6.7
all products
- Some Red Gate products identified as containing a trojan by Anti-Virus software
- Activation may fail with Unknown Error -1
- Product uses web help although a CHM file is available locally
- Argument exception resulting from missing environment variable
- Check for updates may fail when used through proxies
- 'Unidentified Publisher' error when repairing or uninstalling
- Licensing activates product as standard edition
- Moving Red Gate software products to another machine
- Red Gate tools log locations
- The application UI opening slowly when there is no internet access
SmartAssembly
all products
- Red Gate product acknowledgements
- Activating your products
- Activating your products
- Red Gate bundle history
- Check for updates
- Troubleshooting Check for Updates errors
- Current versions
- Deactivating your products
- Installing Red Gate products from the .msi file
- Requesting additional activations
- Serial numbers for bundles
- Reactivating using a different serial number
- Extending your trial
- Finding your serial numbers
- Moving a serial number from one computer to another
- No response received for manual activation
- Licensing and activation resources
- Licensing and activation resources
- Troubleshooting licensing and activation errors
- Licensing and activation FAQs
- Red Gate tools log file locations
- Download old versions of products
- Download product prerequisites & utilities
- Support & upgrades
- Upgrading your software
- Upgrading FAQs

Using SmartAssembly for obfuscation