I have been writing internal use macros for a few years now but still do not have an elegant way to distribute them. I have been asked to write a couple for another company so have looked into better ways of handling the distribution for the external and future internal projects but after many hours of searching and testing I have not found anything I am happy with.
Currently I am creating them in Visual Studio as external applications and then releasing them internally as an EXE but this has some pitfalls;
- Making sure everyone is on the latest revision using this method is difficult.
- There is no code protection, ie obfuscation etc.
Im sure there are more, please feel free to list the things I have not thought about
I looked at OneClick to handle the auto update side of things but the user facing install end seems ugly and unprofessional. Looked at some other options such as files held on DropBox/Google Drive and doing a version check on startup. While this sounded perfect, I couldn't get it to work as per the tutorials presumably due to changes by DropBox/Google Drive around authentication or similar.
I have tried creating installers using Inno Scripts. This looks professional as an installer and behaves nicely.
Then I tried wrapping and obfuscating the DLLs and EXE together, prior to running it through Inno, to give it a little bit of protection but this was then regularly killed or questioned by antiviruses. Not a good look.
I then bought a SSL certificate from Comodo to strong sign the EXEs in Inno but this didn't really help but did add a level of professionalism.
Help needed, How do you do it?
Is there a better way to do auto updates?
How do I protect the code as best as possible from being ripped off?
How do I not have the antivirus kill the applications? Googling this almost seems impossible!