I’m very pleased to announce that the first early access build of .NET Reflector 7.2 is now available. You can get it from the .NET Reflector homepage at:
Let me highlight a couple of the more important items before giving you a full breakdown of the work that’s gone into this release.
Firstly, if you’ve been following the forum at all, you’ll no doubt have noticed the discussion about startup time at http://forums.reflector.net/questions/589/startup-time. It seems that a few users are experiencing very long startup times. There are a couple of potential issues here. The first manifests itself on machines on networks with high latency – it’s related to our licensing code, but I’ve put a fix into this EA build, so if this is affecting you, you should see an improvement. This doesn’t fix the problem for all affected users though, and it seems that in these cases the issue may relate to running in a non-English locale. I’m hoping we’ll be able to get this isolated and fixed as well sometime next week.
Secondly, I’ve now switched on all PowerCommands by default. This isn’t likely to be the way .NET Reflector 7.2 ships, but it’s a great way to quickly shake out problems in the meantime. I’ve already fixed most of the PowerCommands related bugs we were aware of but there obviously could be more problems.
If you do see the Error Reporting dialog box for any reason, I urge you, please submit the error report and we’ll try to get the problem fixed as quickly as possible. We can’t always fix everything because sometimes even an error report doesn’t contain enough information to get to the bottom of a problem, but they do make it significantly easier to find and fix bugs that occur in the field.
And finally, breaking with tradition, here’s an (almost) exhaustive changelog for this release:
- Fixed problem where invalid path characters in resource name caused ArgumentException in PowerCommands’ “Open With Paint…” command (bug RP-1357)
- Handle common I/O problems in PowerCommands “Open With Paint…” command and, where necessary, report to user instead of crashing Reflector
- All PowerCommands invoking an external process, such as “Open With Paint”, now invoke that process with error handling and report errors to the user without crashing Reflector
- Temporary files can now be managed through the ITemporaryFileService, which is registered in Reflector’s IServiceProvider – this is available to add-ins; files and directories managed by this service should be cleaned up on graceful exit; files and directories are created in the user’s TEMP folder, although the value of the RGTEMP environment variable is also respected
- PowerCommands’ “Open With Paint” command now uses ITemporaryFileService to create image file opened by Paint – avoids filename conflict issues
- PowerCommands’ “Open XAML With” command now checks and generates filenames safely and uses ITemporaryFileManager to create temporary files
- Fixed SEHException in Visual Studio add-in when attempting to retrieve assembly version from reference in Visual Studio project – now attempts to retrieve version from assembly name in reference identity when this happens (bug RP-1484)
- “Open XAML in Notepad” and “Open XAML in Visual Studio 2010” commands now check and generate filenames safely and use ITemporaryFileManager to create temporary files
- Fixed rare NullReferenceException during tab closing animation (bug RP-1486)
- Fixed AccessViolationException when populating browser control with “about:blank” page (bug RP-1491)
- Fixed InvalidOperationException caused when trying to report translation failure when decompiling code (bug RP-986)
- Fixed ArgumentNullExceptions caused by inappropriate null assembly references in Visual Studio add-in (bug RP-990)
- Fixed crash caused by attempt to generate PDB file that is already in use (bug RP-1331) – now shows error message user rather than keel over
- Fixed crash caused by Win32Exception when PowerCommands launches an external process (bug RP-868)
- Fixed crash caused by Win32Exception when PowerCommands “Open ILDasm” command executed (bug RP-1388)
- Added option to run updates as administrator (or not) to prevent update failures when installing into “C:\Program Files”, or other locations for which elevation is required
- Assembly browser will now strip enclosing quotes from assembly pathnames where these have somehow been included (bugs RP-1502 and RP-1503)
- Reflector will no longer try to decompile assembly details for assemblies where an error occurred during loading (bugs RP-1502 and RP-1503)
- Fixed several second delay when retrieving license on machines with borked DNS or slow network connections (bug LC-232)
- Fixed crash caused by XmlException when importing query from corrupt XML file (bug RP-1306)
- Fixed crash caused by Win32Exception when opening Reflector StackOverflow tag page (bug RP-872)
- Fixed crash caused by Win32Exception when sending code by email (bug RP-924)
- Fixed crash caused by ExternalException when using “Copy As” PowerCOmmand to copy text as plain text, RTF, or HTML (bug RP-921)
- Fixed a couple of crashes caused by unhandled BadCrcExceptions (bug RP-1389) and BadReadExceptions (RP-918) when working with ZIP files
- Fixed crash caused by InvalidOperationException thrown when an attempt is made to compile a PowerCommands query when no C# compiler is available (bug RP-1018)
- Fixed crash caused by NullReferenceException when attempt made to create code:// URL with null value (bug RP-1307)
- Fixed NullReferenceException in Visual Studio add-in assembly explorer (bug RP-1294)
- Fixed crash caused by OverflowException when a ridiculously large value was supplied for the code viewer indentation (bug RP-1300)
- Applied a practical limit of 128 as the maximum permitted indentation, although it’s still possible to specify a larger value – if this is the case the larger value will be ignored and a value of 128 will be used
- Fixed NullReferenceException when toggling state of “Toggle assembly browser” PowerCommand (bug RP-942)
- Fixed ArgumentException when setting font in enum viewer when system fonts missing (bug RP-983)
- Fixed IOException in Visual Studio caused by concurrent modification of files by add-in running in another Visual Studio instance when re-enabling PDB files (bug RP-1302)
- Added handler and friendly report for user for FileNotFoundException when assembly for type required to instantiate resource cannot be found for conversion to RESX (bug RP-987)
- Fixed NullReferenceException during query results output (bug RP-919)
- Can now select a tab representing a decompiled namespace and the assembly browser tree will update to select that namespace (part of work required to fix bug RP-1003 – hitting refresh causes assembly browser tree to lose current position)
- Selected item now restored in assembly browser tree after the tree has been refreshed (bug RP-1003)
- Correctly restores tabs and selected item after options edited (bug RP-1292)
- No longer closes all windows on Refresh – if a window supplies an IRefreshSupport (exported as part of add-in API) implementation it can optionally be kept open across a refresh (bug RP-996); this is implemented by the Disassembler, Search, and Analyser windows, however since the analyser will be cleared after a refresh this window still closes itself; the Search window will re-run any active search after the refresh has completed
Please do post any feedback you have in the forum at http://forums.reflector.net/ using the #7.2 and #EAP tags, and thanks for taking the time to use this early access build. We hope you enjoy using it!
Until next time!