Manifest file
From wiki.visual-prolog.com
Revision as of 13:46, 24 February 2010 by Thomas Linder Puls (talk | contribs) (→References: Application Manifests)
A Visual Prolog project can contain a manifest file. The manifest file is a Microsoft invention to deal with side-by-side installation, a new hell that is supposed to replace the so called DLL hell.
The file is either named <project>.manifest or main.manifest (current standard).
The manifest file is an XML file, and it is linked into EXE/DLL as a resource. Windows automatically look for it there (if not found there it looks for a file called myProgram.exe.manifest in the same directory as myProgram.exe).
Sample manifest file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="MyProgram" version="1.0.0.0" processorArchitecture="X86" type="win32" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> <dependency> <dependentAssembly> <assemblyIdentity name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" type="win32" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
The file contains three major elements:
- The programs own assemblyIdentity
- A trustInfo element
- A dependency, which lists assemblyIdentity's of assemplies that the program depends on.
The assemblyIdentity element
<assemblyIdentity name="MyProgram" version="1.0.0.0" processorArchitecture="X86" type="win32" />
This element list attributes of the program/DLL itself.
The trustInfo element
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>
The dependency element
<dependency> <dependentAssembly> <assemblyIdentity name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" type="win32" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>