Building 64-bit Manifests

how-to | home

Introduction

If you have not read the introduction to the 64-bit world, you may wish to read it first.

Side-by-side manifests now have new values for the processorArchitecture attribute: "amd64" and "ia64". In general this is intended to differentiate between 64-bit (x64 and Itanium) and 32-bit assemblies. Practically the operating system does not enforce that the proper processor architecture be used in the context of a process (x86 in 32-bit, amd64 on x64 or ia64 on Itanium). You can create a 32-bit assembly and specify processorArchitecture="amd64". As long as you consistently use assembly identity to make sure that the reference matched the definition, this will work.

Since 32-bit DLLs and 64-bit DLLs cannot be loaded in the same process, there is no sense in mixing them in the same assembly.

To maintain consistency, it is best to use the correct processor architecture attribute in any manifests.

Manifest Maker Support for 64-bit Windows

Manifest Maker is a 32-bit application. It executes natively in 32-bit Windows and in WOW64 in 64-bit Windows. COM extraction requires loading DLLs. This is performed by a separate process spawned by Manifest Maker. There are two modules available: for 32-bit Windows and for 64-bit x64 Windows. There is no module available for 64-bit Itanium. Manifest Maker detects the processor architecture of assemblies and modules included in the project and ignores those that do not match the processor architecture currently selected for the project. Note that Manifest Maker will detect Itanium ia64 modules and manifests and will display them in the project with the correct processor architecture, but will not let you choose ia64 for the project's processor architecture.

Examples

When you select 32-bit x86:

All non x86 files are ignored:

When you select 64-bit amd64:

All non amd64 files are ignored: