www.buildautomator.com  Build Automator Documentation

Generate XP/Vista/Win7 Manifest

Previous  Top  Next  


Part of completing software is to create and link manifest files for Windows XP, Windows Vista or Windows 7.  While those files are simple XML files it can be very handy to be able to automatically generate them.  This action does exactly that.  It can create either XP or Vista manifests.  Normally you would just create a Vista manifest to be 100% compatible with both operating systems, since the Vista manifest is backward compatible with XP.  For more information about Vista manifests, please visit this page on MSDN: http://msdn.microsoft.com/en-us/library/bb756929.aspx.  For more information about User Account Control (UAC), please visit this page on MSDN (http://msdn2.microsoft.com/en-us/library/bb530410.aspx)

 

Generate_Manifest

 

Properties

Explanation

Exe File for Manifest ROMx116_dblisttable

Select the executable file to create the manifest for.

Vista Manifest

If you are creating a manifest for Vista, then check this.  This option is checked by default and you should normally just leave it checked.  The Vista manifest is backward compatible with Windows XP and does not cause any problems (that we know of)  This will result in this section of the manifest being added:

 

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

   <requestedPrivileges>

     <requestedExecutionLevel

       level="asInvoker"

       uiAccess="true"/>

     </requestedPrivileges>

    </security>

</trustInfo>

Windows 7 Manifest

This enables the "Enable Windows 7 Compatibility" option below.  This does not directly affect the generation of the manifest, just enables the Windows 7 related options on the window.

Exclude Dependency

This lets you exclude the dependency on Microsoft Common-Controls and in essence it allows you to create a manifest for UAC without changing the look of your application.  No controls will be themed, but the execution level etc. will all be enforced when the program is running under UAC on Vista or Windows 7.  Checking "Exclude Dependency" will result in this section of the manifest being excluded:

 

<dependency>

<dependentAssembly>

<assemblyIdentity

   type="win32"

   name="Microsoft.Windows.Common-Controls"

   version="6.0.0.0"

   processorArchitecture="X86"

   publicKeyToken="6595b64144ccf1df"

   language="*"/>

</dependentAssembly>

</dependency>

Assembly descr. ROMx116_dblisttable

The name of the assembly.  This is placed inside the <description></description> tags in the manifest XML.  This will result in this section of the manifest being added:

 

<description>T Scan</description>

Execution Level

Select one of the execution levels.  For normal programs it should be set to "asInvoker".  If you compile your program using "requireAdministrator" your program will always require administration elevation under Windows Vista, Windows Server 2008, Windows 7 and Windows 8 if UAC is turned on.  This will result in this section of the manifest being added:

 

     <requestedExecutionLevel

       level="asInvoker"

       uiAccess="true"/>

     </requestedPrivileges>

uiAccess

This should normally be unchecked.  This controls if the program can drive input to the user interface of another program, for examply by posting messages to another program or directly sending keyboard input to it.  For more information on this property see http://msdn2.microsoft.com/en-us/library/bb756929.aspx - about half way down the page.  This will result in this section of the manifest being added:

 

     <requestedExecutionLevel

       level="asInvoker"

       uiAccess="true"/>

     </requestedPrivileges>

Enable Windows 7...

This enabled Windows 7 compatibility in the manifest, i.e. "urn:schemas-microsoft-com:compatibility.v1"  This will result in this section of the manifest being added:
 
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">

<application>

</application>

</compatibility>

Supported OS

This is only enabled if you are creating a Windows 7 Manifest and have checked "Enable Windows 7 Compatibility"  You can check either or both Windows 7 and Vista.  For more information about the changes to manifests in Windows 7, please see http://msdn.microsoft.com/en-us/library/dd371711(v=vs.85).aspx The Enable Windows 7 Compatibility and checking both Windows 7 and Vista will result in the red section of manifest being added:

 

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">

<application>

       <!--The ID below indicates application support for Windows Vista -->

        <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>

       <!--The ID below indicates application support for Windows 7 -->

        <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>

</application>

</compatibility>

 

 



Direct link to this page: http://www.buildautomator.com/onlinemanual/generate_vistaxp_manifest.htm