Silent Installer Works on Windows XP, Fails On Windows 7

Silent Installer Works on Windows XP, Fails On Windows 7

Ritratto di Otaku Software Pty Ltd
My installer installs silently on Windows XP, but on Windows 7 the "user is presented with windows installer to complete the installation process." The installer is a vanilla MSI built in Visual Studio 2008 using the instructions at http://appdeveloper.intel.com/en-us/blog/2009/12/21/how-create-msi-installer-using-visual-studio-2008, and all UI dialogs have been removed as per the instructions at http://appdeveloper.intel.com/en-us/blog/2009/12/28/msi-silent-install-package-requirement-update. The installer includes both the Microsoft_VC90_CRT_x86.msm and Microsoft_VC90_MFC_x86.msm merge modules. I've gone through the steps from http://appdeveloper.intel.com/en-us/blog/2010/01/15/silent-installer-demystified to try and reproduce the problem, but when I run the installer on my Windows 7 test system I don't see any UI, the install is silent. The only thing I can think of that could produce a UI popup is the Windows prompt to install an unsigned application, but both the MSI and the app itself are digitally signed. Does anyone have any idea why the installer would work silently on Windows XP and not on Windows 7?
25 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di Otaku Software Pty Ltd

It turns out the problem was that a UAC prompt was being displayed when the app was installed, and that Intel have now decided to accept apps that display a UAC prompt during installation.

I wasn't aware that it was possible to *not* display a UAC prompt when installing to the Program Files directory on Windows 7, I thought it was hardwired into the OS. Have I missed something? Does anyone know if it's possible to prevent a UAC prompt from appearing?

Ritratto di BrianDevArch

Thanks for sharing.

There is no programmatic way to bypass UAC, it requires the user making changes to their computers configuration to suppress the UAC prompt.

Ritratto di Otaku Software Pty Ltd

Thanks for confirming Brian, nice to know I wasn't missing something :)

I was wondering if there was any more information on this? I haven't been able to get this working without the UAC popping up. According to MSDN MSIInstallProduct with "ACTION=INSTALL" translates to "msiexec /i ". This still triggers UAC to popup if you're on Windows 7. Will the UAC prevent an app from being validated?

Ritratto di Hal

Hello Ernesto,

I understand you are already working with our validation team on this issue. We have no additional information. A fix is planned for a future release of the client (no ETA at this time). The validation team will continue to work with you to determine if there is a way to workaround the current problem.

Regards
Hal G.
Technical Support Team
Intel® Atom™ Developer Program
Intel AppUp(SM) Center

Ritratto di BrianDevArch

Ernesto,

As Hal said the SDK team is aware of this situation and is working on a resolution.

I can however offer you two work arounds that will allow you to submit a program that requires administrator access.

1.) Permission check and elevation of primary process

This is the simplest method, and will require the least amount of development work

a.) Primary binary is executed without a manifest
b.) Upon initialization the application checks whether or not it has administrator access
c.) If administrator access is not detected, the user is presented with a dialogue box alerting them to this fact
d.) The dialogue box allows the user to click a button (with the standard UAC shield per MS best practice) to launch the application with elevated permissions.
e.) The app is launched in a new process which specifies elevated permissions and the user is presented with the built in UAC dialogue.
f.) [Optional] Binary is signed with a certificate, which once accepted by the user will prevent the UAC prompt from re-appearing

2.) No permissions check, separate process (exe) used for actions requiring elevated permissions

This method may require more work however it presents a smoother user experience

a.) Primary binary is executed without a manifest
b.) GUI behaves as usual
c.) As functionality is executed which requires elevated permissions, a new process is started (separate worker .exe or command parameters for primary .exe).
d.) The worker .exe process will display the UAC dialogue as needed
e.) [Optional] Worker .exe is signed with a certificate, which once accepted by the user will prevent the UAC prompt from re-appearing

Please let me know if I can assist you further.

@BrianDevArch

Sorry, perhaps my question wasn't clear. I was referring to the MSI file. I followed the steps you wrote out in your article: "HOW TO: Creating your MSI installer using Visual Studio 2008". When I run the installer, the UAC is triggered, probably because we're trying to copy files into the "Program Files" directory (which is a protected folder in Vista and 7). Are there any steps that should be added to your article that would get around this?

My product application does NOT trigger UAC. It's the installer that triggers it. According to the application validation requirements, the installer must not require user interaction. Does accepting the UAC count as user interaction during the validation process?

Ritratto di BrianDevArch

Ernesto,

I follow your request now.

This link describes two methods of marking a MSI as requiring administrator permissions:

http://stackoverflow.com/questions/304353/mark-msi-so-it-has-to-be-run-as-elevated-administrator-account

As far as the UAC prompt question, my thought is that it should not be an issue since it is an operating system function. Intel will need to chime in and verify this though.

Ritratto di Andre (Intel)

Hello All,

this might answer some questions: the AppUp Center launches an MSI installer by calling MSIInstallProduct.

Best Regards

Andre B.

Technical Support Team
Intel® Atom™ Developer Program
Intel® AppUp(SM) Center

Ritratto di BrianDevArch

Thank you Andre, this will allow us to be much more targeted in our approach in solving deployment issues.

More detail on MSIInstallProduct on MSDN

Ritratto di Michael Kasprzak

I don't know what the official stance is/was, but I too was validated and couldn't get "/qn" to work with my MSI on Vista. Windows XP was totally fine with "/qn".

On the other hand, these worked.

MySetup.msi /qb

or

msisetup /i MySetup.msi /qb

Thread: http://appdeveloper.intel.com/en-us/node/736

This requires a single input on Vista (the infamous annoying one that we all love). My app was unsigned, but it sounds like even a signed app has an unavoidable popup... that is unless the AppUp client somehow has permission to "/qn". I have no idea. I only have XP and Linux Netbooks, no Windows 7 Netbook to try the client on yet.

Ritratto di Otaku Software Pty Ltd

Hi Michael,

I don't know how the AppUp client launches the installer, but they seem to be able to suppress the popups. It'd be interesting to hear some details on the
launch process from the AppUp developers.

At the moment the installer is failing validation on Windows 7, and I'm at a lost as to how to fix it, so perhaps the best thing to do is just re-submit the app as XP-only.

Ritratto di Otaku Software Pty Ltd

Has anyone else run into this problem, or does anyone have any ideas as to why it's not working on Windows 7?

Ritratto di Michael Kasprzak

'eh?

Aren't manifests only for the binary, and not the installer itself?

Ritratto di Otaku Software Pty Ltd

Requesting admin privileges in the apps manifest will open up another whole can of worms on Windows 7, so I'd rather not go down that road :)

The installer should be elevated so that it has the correct privileges (either by the AppUp client explicitly launching it with those privileges or by implicitly letting Windows auto-elevate it), so the user shouldn't see any UI popups. The only information I have is that Windows Installer appears, so I don't know exactly what kind of popup is being displayed, but since there's no UI in my installer I assume it's an elevation prompt, and something I'm doing must be causing it to appear.

I'm going rebuild the installer from scratch and ask the validation team to update the file so I can beta test it again. In the meantime I've requested that the app be published as XP-only.

I'd really love to solve this problem. I'm not doing anything fancy (just dumping files in the installation directory and including standard merge modules), so I'm sure other people doing the same thing will run into the issue it the future. I'd hate to see apps to be designated XP-only just because of an installer issue, so it'd be great to find a fix this issue and document it on the forums.

Ritratto di DG Rooven (Intel)

Hello,

Please note that there are many developers who successfully got their applications published for Windows 7. There are no known issues for validating Windows 7 applications.

You may also refer to the packaging requirements: http://appdeveloper.intel.com/en-us/article/packaging-requirements

I would suggest you re-build the installer (as you said above) and then resubmit it for validation. If it fails the validation, you may contact the validation team asking them the reason, if it is not clear to you why the application is failing validation.

If you have you have any issues, please do not hesitate to contact us.

Regards
Rooven

Intel® Atom™ Developer Program Team.

Regards, DG Rooven
Ritratto di BrianDevArch

Rooven,

Would it be possible to find out how AppUp is launching our MSI's? Whether it is being executed using "runas", or just msiexec with parameters. Thank you.

Ritratto di BrianDevArch

Edit:

I was thinking about MSIUSEREALADMINDETECTION and adding a privileged launch condition for Windows 7.

Reference: http://msdn.microsoft.com/en-us/library/aa816403%28VS.85%29.aspx

Ritratto di Andre (Intel)

Hello Brian,

I will check this for you.

Best Regards,

Andre B.

Intel® Atom™ Developer Program

Ritratto di Otaku Software Pty Ltd

Hi Rooven,

I'm shamefully aware that every other developer has managed to avoid this particular problem, I've just been dumb enough to flick the wrong switch somewhere :)

I guess what I'm asking is is there anything I could do in a stock standard MSI (digitally signed, built with VS 2008, and with no UI dialogs) that could cause Windows Installer itself to popup a dialog when installing under AppUp? Could it be as simple as putting a shortcut in the wrong location, or including a particular merge module? I know I'm doing something wrong, it's just finding out exactly what I'm doing wrong that's the problem :)

The validation team told me that "user is presented with windows installer to complete the installation process." I'd dearly love more information on the issue, such as more detailed description of what UI appears and when it pops up, and a screenshot (if possible). I'll forward the request for additional information to the validation team and post any updates in this topic.

Thanks again for everyone's help!

Ritratto di Andre (Intel)

Hello,

I recommend to use the "Beta Test" feature and install your application from within the AppUp Client:
http://appdeveloper.intel.com/en-us/article/beta-testing

Of course test it on a fresh installed and clean OS, VMware/Virtalbox etc. really help during such tests.

Best Regards,

Andre B.

Intel® Atom™ Developer Program

Ritratto di Otaku Software Pty Ltd

Hi Andre,

As I mentioned above I'm going rebuild the installer from scratch and ask the validation team to update the file so I can beta test it again. At this point I think it's best to stop bothering everyone for support and find some time to spend fixing the problem myself :) I'll keep everyone up to date on how I go.

Any ETA on when we'll be able to upload new betas without having to have the files manually updated by the AppUp team?

Ritratto di BrianDevArch

It sounds like you have things under control. This link might be of help during your testing:

http://appdeveloper.intel.com/en-us/blog/2009/12/24/how-setup-virtual-test-environment-using-vmware-player-free-solution

Ritratto di Andre (Intel)

Hello,

a bug fix is currently published to the backend servers and we hope to have this situation solved soon.

Best Regards,

Andre B.

Intel® Atom™ Developer Program

Accedere per lasciare un commento.