UI Plugins: Installing “Reg Free” Plugins

Not an actual image of my Copier solution

Originally, if I wanted to send someone a registry free UI plugin I created, I would have to zip the plugin binaries and manifest file. Then the user would have to extract the binaries to a location, copy the manifest file to the ProgramData location, and modify the manifest file. The process was cumbersome and error prone. I decided to automate the process and create installer for registry free UI Plugins.

The first thing that I discovered was that I could not call my solution “installer” or “setup.” If you run any executable that contains words “install” or “setup,” and the executable does not modify the windows registry, the operating system displays warning that your installer failed. In order to prevent confusion, I named my solution “copier.”

The next challenge was a realization that the copier would have to handle a two-step process: configuring the installer and actually installing the plugin on the user computer. Two steps would run asynchronously on different machines. I did not want a developer to modify code in order to switch between two modes or for end users to select which mode they are running. I chose to create a project that behaves differently based on the project configuration setting. If the project is built using the “debug” configuration setting, the setup process is run. If the project is built using the “release” configuration, the installation process is run.

You can find a Visual Studio template here.


About Ismir

I joined AGI on two month assignment, thirteen years ago. I spent time in the Development and the Services departments before joining the Technical Support group four years ago. I am responsible for the questions regarding customization of the AGI products. In free time, ... wait, what is "free time."
This entry was posted in STK, Tech Talk and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>