Register and Unregister Select Shell Packages

When adding shell package to the SoftPro Select client GUI application, you must do a two step process. First is to pass your package to a Select command line tool that puts package entries in the registry. Second is to start the Select application with a command line argument that forces it to merge all the shell package command tables that form its GUI toolbars, buttons, images, etc.

Register/Unregister Package Tool

Select uses the command line tool spregpkg.exe to perform one of the steps. Below are the command line arguments. Note that no specific ordering is required.

Package Name

/p:<shellPackageName> or /package:<shellPackageName>

Where <shellPackageName> matches any of the following formats. If the path has any embedded spaces, you must wrap <shellPackageName> in double quotes.

  • A package name without a folder prefix: ThePackage.dll
  • A package name with a folder prefix: \\xyz\\ThePackage.dll or /xyz/ThePackage.dll
  • A package name with a drive and folder prefix: c:\\xyz\\ThePackage.dll or d:/xyz/ThePackage.dll

Mode

/m:<regMode> or /mode:<regMode>

Where <regMode> is one of the following values (case insensitive).

  • Register – Add the package information to Select registry locations.
  • Unregister – Remove the package information from the Select registry locations.

RootSuffix

/rootsuffix:Exp

This optional command line argument is used to register/unregister a package with the experimental hive. This is only used for development packages – not production versions of the package.

Register a Shell Package In Production Environment

  • To register your shell package, copy the package file and any non-Select required dependencies to the Select installation directory. This is typically “C:\Program Files (x86)\SoftPro\Select\“.
  • Run the Select command line tool to transfer package information to registry.
> cd "C:\Program Files (x86)\SoftPro\Select"
> spregpkg.exe /p:TheShellPackage.dll /m:register
  • And finally run Select with the command line option to regenerate the GUI components. This will generate/update the Commands.ctm file (for example at “%ProgramData%\SoftPro\Select\4.3“).
> select /setup

Register a Shell Package In Development Environment

  • To register your shell package, copy the package file and any non-Select required dependencies to the Select installation directory. This is typically “C:\Program Files (x86)\SoftPro\Select\“.
  • Run the Select command line tool to transfer package information to registry. We pass the “/rootsuffix:Exp” parameter to update the development environment only.
> cd "C:\Program Files (x86)\SoftPro\Select"
> spregpkg.exe /p:TheShellPackage.dll /m:register /rootsuffix:Exp
  • And finally run Select with the command line option to regenerate the GUI components. This will generate/update the Commands.ctm file (for example at “%ProgramData%\SoftPro\Select\4.3Exp“). Again, we pass the “/rootsuffix:Exp” parameter to update the development environment only.
> select /setup /rootsuffix:Exp

Unregister a Shell Package

Unregistering a package is very similar to the initial registration.

  • Run the command line tool spregpkg.exe with the “unregister” argument. Be sure to add the “/rootsuffix:Exp” argument if you are modifying the development environment!
> cd "C:\Program Files (x86)\SoftPro\Select"
> spregpkg.exe /p:TheShellPackage.dll /m:unregister

    * OR *

> cd "C:\Program Files (x86)\SoftPro\Select"
> spregpkg.exe /p:TheShellPackage.dll /m:unregister /rootsuffix:Exp
  • Run Select with the command line option to regenerate the GUI components. Again, be sure to add the “/rootsuffix:Exp” argument if you are modifying the development environment!
> select /setup

    * OR *

> select /setup /rootsuffix:Exp

What Does Unregister Actually Do?

There is the expectation that unregistering a shell package removes all traces of the package from the registry. What is actually done is to remove only those pieces necessary to prevent Select from attempting to run the old package. Below are the changes that may be made to the SoftPro registry keys.

  • Package keys in “SoftPro/Select/4.3xxx/Commands” are removed so all GUI components are removed when “select /setup” is run.
  • Package keys in “SoftPro/Select/4.3xxx/Editors/{guid}/Extensions/sp-select” are removed so any custom editors defined in the old package can no longer be found.

That appears to be the only changes. TBD???