Visual Studio 2012 Integration - Manifests in the Example Project

how-to | home

This is a continuation of the topic started in Visual Studio 2012 Integration - Example Project.

Embedded manifests can be examined using the Manifest Viewer tool included in the Manifest Maker Start menu subfolder.

This is the program manifest. Note that it contains unmanaged assembly references to clrDLL and comDLL and a direct DLL reference to winDLL.dll.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity name="cmdEXE.exe" version="1.0.0.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Computer Communications, Inc.  All rights reserved.</description>
<description>Licensee: Maze Computer Communications, Inc., www.mazecomputer.com</description>
<description>License: 5 users license</description>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="clrDLL" version="1.0.0.1" type="win32"/>
 </dependentAssembly>
</dependency>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="comDLL" version="1.0.0.1" type="win32" processorArchitecture="x86"/>
 </dependentAssembly>
</dependency>

<file name="winDLL.dll" hashalg="SHA1">
</file>

</assembly>

This is the comDLL manifest #1, the DEF-manifest referenced above:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity name="comDLL" version="1.0.0.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Computer Communications, Inc.  All rights reserved.</description>
<description>Licensee: Maze Computer Communications, Inc., www.mazecomputer.com</description>
<description>License: 5 users license</description>

<file name="comDLL.dll">
 <comClass
     clsid="{7D9C5675-0985-4E2F-BCE4-6E7DD25FDA90}"
     description="ComServer1 Class"
     tlbid="{319E3A5E-B729-4D50-8A40-C7D6923188EF}"
     threadingModel="both"
     progid="comDLL.ComServer1.1">
    <progid>comDLL.ComServer1</progid>
 </comClass>
 <typelib
     tlbid="{319E3A5E-B729-4D50-8A40-C7D6923188EF}"
     version="1.0"
     helpdir=""
     flags="hasdiskimage"/>
</file>

<comInterfaceExternalProxyStub 
     iid="{B67D3696-7462-4753-8454-E834C0E1DA06}"
     name="IComServer1"
     tlbid="{319E3A5E-B729-4D50-8A40-C7D6923188EF}"
     proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>

</assembly>

This is the comDLL manifest #2, the REF-manifest used to tell Windows what resources this DLL needs to initialize:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity name="comDLL" version="1.0.0.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Computer Communications, Inc.  All rights reserved.</description>
<description>Licensee: Maze Computer Communications, Inc., www.mazecomputer.com</description>
<description>License: 5 users license</description>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="Microsoft.Windows.GdiPlus" version="1.0.0.0" type="win32" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86"/>
 </dependentAssembly>
</dependency>

</assembly>

The clrDLL.dll unmanaged CLR manifest describes the unmanaged clrDLL assembly, the COM-visible assembly:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity name="clrDLL" version="1.0.0.1" type="win32"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Computer Communications, Inc.  All rights reserved.</description>
<description>Licensee: Maze Computer Communications, Inc., www.mazecomputer.com</description>
<description>License: 5 users license</description>

<clrClass
   name="clrDLL.ClrSampleClass"
   clsid="{A1B62C33-E218-469D-81C4-10D4F2C608F7}"
   progid="clrDLL.ClrSampleClass"
   threadingModel="Both"/>

<file name="clrDLL.tlb">
 <typelib
     tlbid="{43B2B214-C7A2-4718-8E5A-CC405D8DBDBA}"
     version="1.0"
     helpdir=""
     flags="hasdiskimage"/>
</file>

</assembly>

And, finally, the winDLL.dll REF-assembly:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity name="winDLL" version="1.0.0.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Computer Communications, Inc.  All rights reserved.</description>
<description>Licensee: Maze Computer Communications, Inc., www.mazecomputer.com</description>
<description>License: 5 users license</description>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="Microsoft.Windows.Common-Controls" version="6.0.0.0" type="win32" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86"/>
 </dependentAssembly>
</dependency>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="Microsoft.Windows.GdiPlus" version="1.0.0.0" type="win32" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86"/>
 </dependentAssembly>
</dependency>

</assembly>

 

 

Go back to Visual Studio 2012 Integration - Example Project.

Continue toVisual Studio 2012 Integration - Project Properties.