You can create plug-ins that are self-installing, or you can create a single add-on package that contains the main library or script file plus any additional files, such as preset files, help files, images files, etc. However, only these kinds of tools can be self-installing:
Custom Display Host Callbacks
This obviously limits your distribution choice to using add-on packages if you are deploying tools that are not on this list (for example, a custom Fx operator cannot be self-installing).
In addition, if you want to provide extras, such as shader definitions, image files, etc., you must use an add-on package, as self-installing plug-ins are meant to be wholly contained within one single file.
If you are a third-party plug-in developer and you want to distribute your tools, you can choose whether to distribute your self-installing file by itself or package it in an .xsiaddon file to distribute to customers.
If you are developing tools in your user location and you want to publish them inside your production environment, you can use workgroups to deploy your add-ons and self-installing plug-ins.