locked
trying to update product components RRS feed

  • Question

  •  

    I've got an interesting scenario I need to get running on Vista.  I have a client setup kit written that puts the client software in Program Files\MyProduct.  The way our product is architected is that the client is really only an installer for Crystal and MS redistributables.  Our own DLLs are copied to a server share and we have our app set up so that when the short cut is clicked, it fires a sync program that compares the DLLS sitting in MyProduct to those on the server share to detect any changes.  If any files are new or updated, the following actions occur:

    1. Check if the logged-in user has Admin rights.  If not, read a registry key that stores an admin uid/pwd for use in the following steps in a "Run As" mode.  (We deal with HIPAA- driven lockdowns on our client systems)
    2. Unregister the local DLL files using regsvr32.exe.
    3. Copy the new/updated files down to MyProduct.  Again, a custom copying app is executed with the appropriate uid/pwd.
    4. Re-Register the local DLL files using regsvr32.exe

    The main application is then launched.

     

    In the market segment we work in, it isn't often that an IT Person is on site to run around to workstations and run installers, and this arrangement has worked fine (more or less) over the years before I started on this project.

     

    I've been working on rewriting this app in VB 2005 and have for the most part managed to get rid of a lot of the old legacy code that was hanging around.  But I'm not sure how to do some things, so I'm asking for a little help.  In the long term, I'd like to use ClickOnce or MSI packages, but the target environments I tend to run into don't always support that (i.e. no IT in-house, no intranet, no money)

     

    1. I'm not sure if I can still do the "RunAs" to get the files unregistered/copied/registered.  If I can't, I was trying to figure out how to show a form containin a button with the UAC shield.  This form would alert them that updates are ready for the app, and have clicking that button do something to let UAC do its thing.  
    2. Since I only need to take actions 1-4 above if there are changes, do I really need to author the manifest file to say "requiresAdministrator", or can it say "highestAvailable"? Can I break out the "admin" work to another process and elevate that process when its invoked?  Or would I manifest the 2nd process and let UAC handle the prompts?

    I'm sure there's more, but those are the two biggies at the moment.  Thanks.

    Thursday, August 16, 2007 1:18 PM