# Working with Plugins

In order for a plugin to be usable by a Designer application in development or test mode, it must meet the following requirements:

- All of the .DLL files that implement the plugin must be stored in a single plugin directory within %ProgramData%\Cognex\Designer\Plugins\ on the PC upon which you are running Designer.
- The directory that contains the plugin .DLL files must also contain a Plugin Configuration file that describes the characteristics and compatibility information for the plugin.

Cognex recommends that you adopt the following convention for naming and arranging plugin directories within %ProgramData%\Cognex\Designer\Plugins\:

%ProgramData%\Cognex\Designer\Plugins\_company_name_\ _plugin_name_\_version_ \ _architecture_ \

where:

- _company_name_ is the name of the company that created the plugin.
- _plugin_name_ is the name of the plugin.
- _version_ is the version of the plugin
- _architecture_ is Any, x86, or x64

Using this naming scheme allows you to manage the concurrent installation of multiple versions of a given plugin.

Note: The use of this naming scheme is optional as long as the two requirements listed above are met. Whenever you create a new project in Designer, Designer will search all directories within %ProgramData%\Cognex\Designer\Plugins\. Any plugins within the directory, or any of its sub-directories, will be added to the project's list of plugin references.

The plugin manager supports multiple versions of a plugin installed at the same time. In the case of the VisionPro plugin (which is of course required to use Designer to create a VisionPro application), each plugin has a compatibility selector that specifies the range of VisionPro versions that it works with. This means that it is likely that the window that lists plugins will show multiple VisionPro plugins, but only one of the plugins will be compatible (the rest will be red).This is because only a single version of VisionPro may be installed on a given PC at a time.

For something to go red, it must be Not Installed (i.e. there is no plugin.config in the same folder where the plugin itself is) or Not Compatible.

For a plugin to be compatible, it has to meet the following requirements :

- Target API test (the API of Cognex Designer):

  - If the Major versions are not equal, then they are not compatible.
  - If the Minor version is less than or equal to the API’s minor version, then they are compatible.
- Architecture test (x86/x64/Any): The architecture of the plugin must be the same as the architecture of the Cognex Designer application, or Any.
- All of the compatibility checks (if any are used)

Note: If you install a plugin onto your machine, the plugin by default will not be available in projects created before. If the plugin is needed in one of the projects created beforehand, you have to make it available for that project through the Project Plugin Configurator. Projects created after installing the plugin will have it by default.