The Updater Application Block… various additions…


One of the nice things about the Updater Application Block is that it was written to be quite extensible… I saw a post today where SamSantiago mentioned he had created a custom class to delete all those old versions on your machine whenever you do an update…. very cool, I’ll be trying that out right away…

Personally, I’ve updated the updater in a few different ways, but the most recent changes have been the most reusable, in my opinon;

  • I fixed the code so that it no longer requires users to have admin rights…
  • I added a ‘mandatory’ flag to the updates (and updated the manifestutility in a few different ways), so that for some updates the client app would know not to ask the user if they want to upgrade… great for occasionally forcing everyone up to the same build…
  • and I modified the manifest retrieval code so that it can call an ASP or ASP.NET page, which in turn allowed me to create a manifest.aspx page that returns different manifests based on the user’s credentials (so I can have a ‘beta’ group who are given one version, and everyone else gets the last major release…)

I’ve got to work out a way to get these bits of code online…. it isn’t hard, but it takes time that I haven’t planned in yet :)

Comments (5)

  1. Ian Cooper says:

    >I fixed the code so that it no longer >requires users to have admin rights…

    Interesting. Could you share some more on this. I might need that fix too…

  2. Chris Kinsman says:

    Cool. I am writing a book for MSPress that includes some of this stuff. I have written an application launcher controller that has the ability to do mandatory vs. non-mandatory updates and a few other things myself…

  3. Sean Gahan says:

    Duncan,

    Quite some time ago you had written an article on BITS: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncodefun/html/code4fun02282003.asp. I was very impressed with the technology and it was exactly what I needed. At the time I was designing a router for satellite based internet users, and I needed some way to push updates to the routers after they were in the field. I had used your article on how the technology works and then created my own Updater Application for the router, this it: http://www.optistreams.com/products/beti/BETI_Overview.html

    Since that time I read your articles (and blogs) on a regular basis and I just wanted to let you know what a positive impact you have on the developing community.

    Regards,

    Sean Gahan

    sean@seangahan.net