This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- requestedExecutionLevel != requiredExecutionLevel ?
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 30, 2007
07:54 AM
requestedExecutionLevel != requiredExecutionLevel ?
Hi all,
Upgrading our application for Vista includes, as you probably already know, embedding an application manifest. We use Visual Studio's mt.exe, and the manifest is like this (name and version changed to protect the innocent):
type="win32"
name="MyApp.exe"
version="1.0.0.0"
processorArchitecture="x86"/>
level="asInvoker"
uiAccess="false"/>
The application works fine under XP and Vista. But if I run Installshield's validation for Windows Vista (plus IS ICEs) I get the following errors:
Exe MyApp.exe in component MyAppComponent lacks a requiredExecutionLevel uiAccess setting in its manifest.
Exe MyApp.exe in component MyAppComponent lacks a requiredExecutionLevel level setting in its manifest.
As you can see, my manifest includes a requestedExecutionLevel, not requiredExecutionLevel section. This is what I have found everywhere I looked --requested, not required.
Is it simply a small IS bug ? Or am I supposed to add both sections for some reason ?
Please advice !
Upgrading our application for Vista includes, as you probably already know, embedding an application manifest. We use Visual Studio's mt.exe, and the manifest is like this (name and version changed to protect the innocent):
type="win32"
name="MyApp.exe"
version="1.0.0.0"
processorArchitecture="x86"/>
level="asInvoker"
uiAccess="false"/>
The application works fine under XP and Vista. But if I run Installshield's validation for Windows Vista (plus IS ICEs) I get the following errors:
Exe MyApp.exe in component MyAppComponent lacks a requiredExecutionLevel uiAccess setting in its manifest.
Exe MyApp.exe in component MyAppComponent lacks a requiredExecutionLevel level setting in its manifest.
As you can see, my manifest includes a requestedExecutionLevel, not requiredExecutionLevel section. This is what I have found everywhere I looked --requested, not required.
Is it simply a small IS bug ? Or am I supposed to add both sections for some reason ?
Please advice !
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 30, 2007
12:41 PM
It looks like there is a mistake in the error text, however the check appears to be correct. It looks for a asmv3:trustInfo element like this:
I noticed that your trustInfo element is in the asm.v2 namespace. Try updating to the asm.v3 as above.
level="asInvoker"
uiAccess="false"/>
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 31, 2007
01:58 AM
MichaelU wrote:
It looks like there is a mistake in the error text, however the check appears to be correct. It looks for a asmv3:trustInfo element like this:I noticed that your trustInfo element is in the asm.v2 namespace. Try updating to the asm.v3 as above.
level="asInvoker"
uiAccess="false"/>
Hi Michael, thanks for your answer. That clarifies things a lot.
Won't there be a problem with Windows XP ? I've read several articles talking about v2 being "more stable" (whatever that means) than v3.
TIA
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 31, 2007
10:39 AM
I'm not certain - I've never been able to find very good documentation on this. Since the requestedExecutionLevel itself is only useful on Vista, I can't imagine its namespace causing problems on XP, but I've been wrong before.
Previously all the examples I'd seen were structured as in the snipped I pasted, but just now I found some that use some asm.v2 (v1:assembly/v2:trustInfo/v2:security/v3:requestedPrivileges/v3:requestedExecutionLevel on http://www.global-webnet.net/LLC/DevelopersCorner/CertifiedLogo/563.aspx) or all asm.v2 (http://blogs.msdn.com/cjacks/archive/2006/09/08/745729.aspx) in addition to one that use all asm.v3 (http://blogs.msdn.com/junfeng/archive/2006/08/09/692996.aspx).
Since I don't know what's right, and don't want to effectively enforce something that's wrong, here's how to modify the check so it checks what you want it to. Open up the ISVista.cub file from the validation folder, use the direct editor to go to the _ISManifest table and edit the XPath entries to use whatever namespacing you'd prefer to verify. The namespaces for asm.v1 through asm.v3 are available there as v1, v2, and v3.
Previously all the examples I'd seen were structured as in the snipped I pasted, but just now I found some that use some asm.v2 (v1:assembly/v2:trustInfo/v2:security/v3:requestedPrivileges/v3:requestedExecutionLevel on http://www.global-webnet.net/LLC/DevelopersCorner/CertifiedLogo/563.aspx) or all asm.v2 (http://blogs.msdn.com/cjacks/archive/2006/09/08/745729.aspx) in addition to one that use all asm.v3 (http://blogs.msdn.com/junfeng/archive/2006/08/09/692996.aspx).
Since I don't know what's right, and don't want to effectively enforce something that's wrong, here's how to modify the check so it checks what you want it to. Open up the ISVista.cub file from the validation folder, use the direct editor to go to the _ISManifest table and edit the XPath entries to use whatever namespacing you'd prefer to verify. The namespaces for asm.v1 through asm.v3 are available there as v1, v2, and v3.