Home > Uncategorized, dotnet > Vista, UAC and the ClickOnce Bootstrapper

Vista, UAC and the ClickOnce Bootstrapper

November 1st, 2008 Leave a comment Go to comments

Installing Microsoft Windows VistaImage by cocoate.com via FlickrWe
all enjoy being bitten in the ass by that 1 scenario that we never
remembered to test, especially when you’re about to release. My
particular ass biting comes in the form of the ClickOnce
bootstrapper. For those of you who don’t know ClickOnce, the
bootstrapper is the setup.exe that users run in order to install all
your prerequisites and then your application.

It had been working fine, until I remembered to try it on a Vista install with UAC
enabled, which is the default setting. Now, everyone I’ve ever met
disables UAC as soon as Vista is installed, but your average home user
will probably not know it can be turned off and just accept the
insanely irritating thing.

With UAC enabled, the bootstrapper
doesn’t give you a message on launch saying “Hello, we don’t have the
right permissions), no. It gets half way through the installation,
then throws an “Incorrect Function” error, leaving developers pouring
through install logs to try and guess the problem. Needless to say, end
users must not be exposed to this utter lameness.

I’m currently conversing with various MSFT boffins
to see if a resolution can be found, although I’m not hopeful. There’s
a fair bit of ducking and diving going on, which usually indicates
you’ve hit on a shortcoming

If no resolution can be found, the stark truth is that if you need to use the bootstrapper, ClickOnce is entirely incompatible with an out-of-the-box Vista setup.

Edit: I’m wrong. So very wrong. The problem was caused by a corrupt VM. Not ClickOnce.

Reblog this post [with Zemanta]
  • Share/Bookmark
Categories: Uncategorized, dotnet Tags:
  1. November 1st, 2008 at 23:45 | #1

    Do you definitely need .Net 3.5sp1?
    I’m guessing it might work if your app can work with just .Net 3.0 and not have any prerequisites?

    I expect the MS response to be that it will be fixed in Windows 7….

  2. November 2nd, 2008 at 00:01 | #2

    @Colin, 3.5SP1 is the first time that ClickOnce became a viable
    option for the B2C market, as it is the first time that a Firefox
    plugin was included with the framework.

    Without 3.5SP1, users that have Firefox as the default browser are
    unable to use the bootstrapper, as Firefox doesn’t know what to do with
    the ‘.application’ files. There is the FFClickOnce addin, which works
    fine, but it’s not acceptable as a B2C solution for non technical users.

  3. March 13th, 2009 at 17:52 | #3

    Re your edit:
    “Edit: I’m wrong. So very wrong. The problem was caused by a corrupt VM. Not ClickOnce.”

    I am seeming to have the same or a similar problem to you. Could you say how you determined that your VM was corrupt?

    I had users tell me that the installation was failing on Vista, and then subsequent testing in a VM confirmed this.

    Are you saying that you have a clickonce deployment installing .net 3.5 sp1 as a prerequisite onto vista without any problem.

    I am getting the “Unable to read registry value” error in the log -
    leading to the bootstrapper eventually giving up trying to install .net
    3.5 sp1 .

    I have tried it now even with UAC turned off, and still getting the same error.

  4. March 13th, 2009 at 20:18 | #4

    @Business Software Bournemouth – The VM in question was unable to
    install any update, not just the updates that the bootstrapper was
    trying to install.

    I recreated the VM from scratch, ensured it was able to install
    updates, then the bootstrapper worked fine. There was definitely an
    issue with the VM, and in an ideal world I would have had the time and
    motivation to dig deeper and find the *actual* problem with the
    existing VM.

    Perhaps it was a corrupt registry?? Not sure. But in answer to your
    question – yes, I have a 3.5SP1 bootstrapper working on Vista.
    (www.homedocumentmanager.com)

    One idea – are the builds you’re testing all done on the same machine? If so, try building on a different machine.

  5. March 14th, 2009 at 12:42 | #5

    Yes, all the builds were done on the same machine.

    Thanks… I’ll try that.

    Although I am not holding out much hope. When I log into a target
    Vista machine as THE administrator the bootstrapper works fine
    installing .net 3.5 SP1

    This makes me think it is entirely a permissions issue of the target
    machine, and I can’t see how building on a different machine is going
    to effect that?

    I have raised the question here as well:

    http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/7e97bf07-4639-4522-b3fd-5456eb94d1eb#

  6. March 11th, 2010 at 01:05 | #6

    Hi I found this site by mistake when i was searching Google for this issue, I must say your site is really helpful I also love the design, its amazing!. I don’t have the time at the moment to fully read your site but I have bookmarked your site and also add your RSS feeds. I will be back in a day or two. thanks for a great site.

  1. No trackbacks yet.