I write various custom apps for our SME (Small to Medium Enterprise) to try and make our users’ lives easier. And make mine difficult in the process… I use C# Express Edition 2008 which doesn’t give you the ability to create a install project. You can publish the project but I find it very limiting plus you can’t create an msi package to roll out with Active Directory.
This got me started on an app to manage distribution of my custom apps better. I created a wizard interface that lets you create a “Project” and a generic remote path (I use the c$ share e.g. \\hostname\c$\projectname\). Next, browse and select the files associated with the project ie. executable, dlls, etc. In my case, I just link to the files in my Visual Studio created project “release” folder. Finally, the app gets a list of domain computers and you can select which hosts to roll out to. All the information is stored in a textfile.
The main interface lets you select a saved project and verify if the associated files (File.Exists) and hosts (with Ping) are available. If you are happy just click Deploy and Bobs your uncle. The files will copy to the selected hosts and you have the option of creating Desktop and Startup shortcuts. And you can do all this without even having to explain to a user how to run an installation…
I am not going to publish this app yet purely because its customized for my organisation and I don’t have time to write the app flexible enough. I will however send *edited* source code to anybody that could find it useful, just leave a comment.