SmartAssembly - 5.5

SmartAssembly

Learning SmartAssembly - 5.5

About map files

When a user sends an error report for an obfuscated program, the objects and methods in the error report are obfuscated. This means that the error report would be unintelligible without first being deobfuscated.

SmartAssembly uses map files to convert obfuscated information within an error report back to meaningful names. SmartAssembly also uses map files to record information about the assembly which is used when displaying error reports, for example line numbers.

Managing map files

In order to avoid useless map files taking up disc-space unnecessarily, map files are automatically deleted 15 days after the last report relating to the associated assembly was received. SmartAssembly assumes it was a test build and is no longer used.

If the build will be released to end-users, you need to specify that SmartAssembly should not to delete the map file.

To mark the build as 'released', click the Mark as Released button after building the assembly. If you need to mark a build as released after building it (within 15 days of the last error report), use the following command on the command line:

SmartAssembly.com /markasreleased YourAssembly.exe

If you set up SmartAssembly to use a SQL Server database, the map files are stored in the folder you specified when you first set up SmartAssembly.

Moving map files

You can change where map files are saved. This may be useful if you are decommissioning the storage medium where the map files are currently stored, for example, and you need to move the map files.

If more than one user uses SmartAssembly

  1. Open SQL Server Management Studio or equivalent
  2. Connect to the database server which contains the error reports
  3. Right-click on the SmartAssembly database and click New Query
  4. Type the following line into the new query window:
    SELECT * FROM dbo.Information
  5. In the results, note the value stored in the MapFolderNetworkPath column
  6. Create a new query as follows:
    UPDATE dbo.Information
    SET MapFolderNetworkPath = '\\NEWPATH\Folder'
    WHERE MapFolderNetworkPath = '\\OLDPATH\Folder'
    replacing \\OLDPATH\Folder with the value you noted in step 5 and replacing \\NEWPATH\Folder with the new location for map files.

If only one user uses SmartAssembly

If you only want to move your development environment to a new computer:

  1. Navigate to %ProgramData%\Red Gate\SmartAssembly\ on the old computer
  2. Copy the database.mdb file and all of the \Maps\ directory to the %ProgramData\Red Gate\SmartAssembly\ directory on the new computer.

If you want to change the path where the Maps files are stored, change the LocalPath attribute value for the <Maps> node in the config file:

<SmartAssembly.Settings>

<Options>

...

<Maps LocalPath="c:\PathToSmartAssembly\Maps\" />

...

</Options>

</SmartAssembly.Settings>

(If the <Maps> node also has a NetworkPath attribute, ignore it as this is no longer used.)

Was this article helpful?

Search support
Forums
Visit the SmartAssembly forum.

SmartAssembly

all products