سؤال

I am trying to make a very simple installer project with WiX, and it will not run under non-administrator accounts.

Preamble:

-Visual Studio 2010

-WiX 3.7

-Program built on and for Windows 7, x64

I have a basic WiX installer project that is doing the most simple, standard installation process with nothing fancy:

-Install to Program Files

-Desktop and start menu shortcut

Problem:

This runs fine when I am logged in as an administrator, however on any non-administrator account (which means most people), it tells me I don't have enough privileges midway through the install and exits. From reading around, it appears that to install to the Program Files folder, the user must be an administrator. What I need is for the administrator login dialog to pop up and ask for credentials before proceeding, rather than just abruptly failing. I have read every relevant post here and on the WiX mailing archive and none of them give an answer that works.

I have tried every combination of these:

InstallScope="perMachine"
InstallerVersion="400", "300" and "200"
InstallPrivileges="elevated", and "limited"
<Property Id="ALLUSERS" Value="2" />
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
<Property Id="MSIFASTINSTALL" Value="1" />

and not a single one works. How should one go about making an installer that a non-administrator (again, most people) can actually run?

The closest answer I've seen is to instead use a boostrapper project that has a custom manifest. I've looked around and see no good examples of how to do that either.

Final notes:

-This must be run as administrator because I've packaged the Visual Studio 2010 redistributable as a merge module.

-Is there a way around this? Most people simply don't run as administrator. Naive users don't even know what it is. When did this get so complicated? Installing has always been such a breeze, and I was honestly very surprised with how difficult WiX has been.

هل كانت مفيدة؟

المحلول

Never mind, the problem is that if you set Windows to never warn you about UAC related things (set the slider all the way to the bottom in the Control Panel), then no admin login prompts will ever be displayed.

نصائح أخرى

You can add

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" AdminImage="yes"/>
   <Property Id="MSIUSEREALADMINDETECTION" Value="1" />

This should work as per theory :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top