PLB Manifest Editor

A Windows “Manifest” is an XML file that is embedded within a Microsoft Windows executable file. When the operating system (XP or greater) loads the application and detects the presence of a manifest, the operating system’s DLL loader is directed to the specific version of the DLL that is listed in the manifest. If there is no manifest, the DLL loader loads a default version.

If you want a more detailed description of how a manifest file works, please read the following Wikipedia article.

The PLB Manifest Editor is a graphical user interface that allows an embedded XML manifest to be extracted from an executable, viewed, edited, and then saved/embedded back into the executable. The Microsoft (command line) “Mt.exe” utility is used to perform the XML extraction and embedding.
While the PLB Manifest Editor can be used with most Windows executable files, it was designed specifically for use with Sunbelt PLB for Windows (plbwin.exe) executable.

plbManifestEditorIcon.png
 

PLB Manifest Editor - Application Identity

PLB Manifest Editor - Dependencies

PLB Manifest Editor - Security

PLB Manifest Editor Preferences

PLB Manifest Editor Preferences

PLB Manifest Editor Terminology

Open: Allows the user to choose an executable file (such as plbwin.exe). After selecting an executable file, the utility will extract the embedded manifest file and present the (extracted) XML Manifest file for editing.

Save: Allows the user to save/embed an edited XML manifest file back into the selected executable. After (attempting) to embed the edited XML manifest, the utility will re-extract the embedded XML manifest from the selected executable. If your changes were not successfully saved the mostly likely reason is because the XML did not pass the validation test of the Microsoft Mt.exe utility.

Preferences: Allows the user to establish default preferences to control how some of the features within PLB Manifest Editor operate.

Help: Displays a dropdown menu that will allow the user to view help contents, navigate to our website, or see the PLB Manifest Editor about screen.

Exit: Allows the user to exit or close this particular instance of the PLB Manifest Editor program without exiting the PLB Utility Suite.

Manifest Options

Application Identity: Within the embedded XML manifest, an optional recordset can identify the application to the operating system.

  • Name: Microsoft recommends using the following format for the name of your application, Organization.Division.Name. For example Microsoft.Windows.Calculator
  • Description: A free form description of your application.
  • Version: The version of your application. If you provide a version, the number must use Microsoft’s format which is 4 integer numbers separated by three decimal points. Example: 1.0.7.0

Dependencies: Four distinct settings are currently supported by the PLB Manifest Editor.

  • Microsoft Visual C++ 2005 Service Pack 1: Recommended when using PLBWin version 9.2 and higher. Requires that the Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) is installed.
  • Version 6 Common Controls: The default common controls (version 5) are the standard looking controls released with Windows 2000 and Windows Millennium. Windows XP introduced updated (version 6) common controls. This setting allows your application to request use of the version 6 common controls.
  •  

  • Application Tested with Windows 7: I don’t fully understand the impact of this setting, but in general it says you have tested your application on Windows 7. Search MSDN for the GUID {35138b9a-5d96-4fbd-8e2d-a2440225f93a} for more information.
  • Application Tested with Windows Vista: I don’t fully understand the impact of this setting, but in general it says you have tested your application on Windows Vista. Search MSDN for the GUID {35138b9a-5d96-4fbd-8e2d-a2440225f93a} for more information.

Security: Microsoft Windows 7 and Vista use an enhanced security methodology. For these operating systems the embedded XML manifest allows developers to mark their applications with a requested execution level.

  • asInvoker: The application runs with the same access token as the parent process. Recommended for standard user applications.
  • highestAvailable: The application runs with the highest privileges the current user can obtain. Recommended for mixed-mode applications.
  • requireAdministrator: The application runs only for administrators and requires that the application be launched with the full access token of an administrator. Recommended for administrator only applications. Internal elevation points are not needed.

 

Known Issues and Limitations

 

  • Administrative privileges are required in order to update XML manifest files within Windows executable files. You will not be able to ‘Save’ changes to an XML manifest without administrative privileges.
  • Because this utility was specifically designed for the Sunbelt plbwin executable, there are two attributes within the Application Identity recordset that are hard coded. The ‘Type’ attribute is always set to ‘win32’, and the ‘ProcessorArchitecture’ is always set to ‘x86’.
  • Because this utility was specifically designed for the Sunbelt plbwin executable, there is one attribute within the Trust Info recordset that is hard coded. The ‘uiAccess’ attribute is always set to ‘false’.
  • There are additional XML records that can be added to a Windows Manifest, support of some of these other features may be added to this utility in the future if they are applicable to the Sunbelt PLB for Windows (plbwin.exe) executable. Detailed documentation can be viewed at http://msdn.microsoft.com/en-us/library/aa374219(v=vs.85).aspx.