ArgusMagnus Posted October 12, 2015 Share Posted October 12, 2015 (edited) I have developed a plugin installer. I know that this has been done before, but I wasn't happy with the existing solutions. I know that a plugin installer/management system is on Rick's ToDo list, but I wish to provide an intermediate solution, until the real one arrives. The installer can be invoked in two ways: 1. FileType: Open->Plugin Installer (*.pdnplgn, *.zip) 2. Effect: Effects->Advanced->Plugin Installer This will let you open a zip archive (optionally renamed to have a .pdnplgn extension). It will read the containing .net assemblies and show the contained filetype and effect plugins. It will also show you what already existing plugins will be overwritten. If it was started from the effects menu, it will also allow you to preview effects (double click on the effect) before installing it. After clicking "Install" the plugins launch a seperate process which then waits until paint.net is closed by the user and after that copies the files to the paint.net directory. When the installation is complete, it will give you the option to start paint.net up again. However, this won't just simply copy dll's, it will check if there are assemblies which are referenced by the selected ones and copy them as well. If existing, it will also read the PluginInstallerInstructions.xml file in the archive (see the example "ArgusPaintNet (Text).pdnplgn") which lets plugin authors specify non-.net references (like native assemblies or any other filetype) which should be copied and also files which should be removed (e.g. if you have renamed your effect assembly and want the installer to remove the old one). I have read the rules over and over again and I don't think this violates any of them (perhaps the "side effect" clause on FileType plugins, but I could easily remove that) but I'm still not sure if this will be allowed. I have read an old thread where something similar was removed/banned, but I don't know what was actually done since the code was removed. I contacted Rick and he said, that this functionality won't work out as a plugin, but would probably be okay as an external utility, and said, I should post this to the developer section and see how this goes from there. So.. I fear that what I have done till now won't be allowed, but I have still a little hope left since technically, the plugin only shows you plugins (similar to other plugins like the pinned Plugin Browser), the actual installation/file manipulation is done by an external program (you don't see this exe since it is included as resource in the plugin assembly and extracted to the temp folder when needed). Since this might never make it to the public release section, I haven't put too much effort into it yet. It worked well on my personal computers with BoltBait's Plugin Pack and my own (included as ArgusPaintNet (test).pdnplgn), but it is not well tested. You probably wouldn't have a hard time to make it crash (e.g. by feeding it a corrupt archive). I posted this here, so you can tell me if 1. what part of this idea you like and which part you don't 2. Rick (and perhaps senior members/admins) can tell me if this is allowed, and if possible, which part is not allowed (and optionally, just for my own curiosity, why it is not allowed) 3. If this gets the go ahead, you can help me test this, since something like this should be heavily tested before releasing. Download: https://onedrive.live.com/?id=429F16CCEF18E484%21351194&cid=429F16CCEF18E484&group=0 If you want to build this from the source, you will need VS 2015 (previous version probably won't compile it, since the source makes use of new C# 6.0 features). I'm looking forward to your feedback Edited May 19, 2016 by ArgusMagnus 1 Quote My batch Image Processor: https://imagenator.codeplex.com Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.