It doesn't look like it is possible to create a PLGX file without refactoring
the code heavily. The long explanation is below, so stop reading and just take
my word for it if you don't want to bother with the details.
KeePass requires that the solution to create a PLGX for only contains one
project file. The provider code (digitalbucket and FTP DLLs), which are
contained in separate project files from the KeePassSync code (main DLL), are
dependent on both KeePass AND KeePassSync code. This dependence means that you
need to make sure that KeePassSync code gets compiled first, and the
providers' code have access to the compiled KeePassSync code from KeePass'
cache. It may be possible to compile KeePassSync to a DLL for 2.0.9 and
generate PLGX format plugins for the providers, but having to recompile the
main DLL for every new version defeats the purpose.
There's 3 possible ways of refactoring the code to allow PLGX generation.
The first option is to merge the providers' code with the KeePassSync code but
you lose the ability of just dropping in a DLL/PLGX to add providers. This is
perhaps the easiest to do. I'll try this myself and perhaps provide a download
package elsewhere.
The second option would be to somehow drop the KeePass_Sync dependence from
the providers' code, which will allow you to not only provide a PLGX format
for the KeePass_Sync main plugin, but also for the provider plugins. I'm just
not 100% sure that the second option is possible though without changing the
KeePass code itself. This is probably the best option if it can be done in the
first place.
The third option would be to create a similar plugin system to KeePass' PLGX
format specifically for KeePassSync. Most likely the hardest to do, but it
provides the same functionality as the second option and is sure to not need
any code changes to KeePass itself.
There's probably also a 4th option using unmanaged code, however, I'm not
exploring the idea due to the fact that I consider it quite messy.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Subj
Maybe it'll be possible to create a PLGX File with the sources:
http://keepass.info/help/v2_dev/plg_index.html#plgx
I'll try it, if I have some time this weekend.
It doesn't look like it is possible to create a PLGX file without refactoring
the code heavily. The long explanation is below, so stop reading and just take
my word for it if you don't want to bother with the details.
KeePass requires that the solution to create a PLGX for only contains one
project file. The provider code (digitalbucket and FTP DLLs), which are
contained in separate project files from the KeePassSync code (main DLL), are
dependent on both KeePass AND KeePassSync code. This dependence means that you
need to make sure that KeePassSync code gets compiled first, and the
providers' code have access to the compiled KeePassSync code from KeePass'
cache. It may be possible to compile KeePassSync to a DLL for 2.0.9 and
generate PLGX format plugins for the providers, but having to recompile the
main DLL for every new version defeats the purpose.
There's 3 possible ways of refactoring the code to allow PLGX generation.
The first option is to merge the providers' code with the KeePassSync code but
you lose the ability of just dropping in a DLL/PLGX to add providers. This is
perhaps the easiest to do. I'll try this myself and perhaps provide a download
package elsewhere.
The second option would be to somehow drop the KeePass_Sync dependence from
the providers' code, which will allow you to not only provide a PLGX format
for the KeePass_Sync main plugin, but also for the provider plugins. I'm just
not 100% sure that the second option is possible though without changing the
KeePass code itself. This is probably the best option if it can be done in the
first place.
The third option would be to create a similar plugin system to KeePass' PLGX
format specifically for KeePassSync. Most likely the hardest to do, but it
provides the same functionality as the second option and is sure to not need
any code changes to KeePass itself.
There's probably also a 4th option using unmanaged code, however, I'm not
exploring the idea due to the fact that I consider it quite messy.