Visual Studio 2017 Integration - Manifests in the Example Project

Help Home How-To VS 2017

Example COM Build Properties Manifests
Quick start guide How to guides Advanced topics User interface Side-by-Side License information
Web Home Free evaluation Download the latest version

Visual Studio 2017 Integration

This is a continuation of the topic started in Visual Studio 2017 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.4.1.0" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (6.0.5334.0) (x64)</description>
<description>Copyright: (c) Maze Solutions LLC. All rights reserved.</description>
<description>Licensee: Maze Solutions LLC, www.manifestmaker.com</description>
<description>License: 5 users license</description>

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

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="comDLL" version="1.4.1.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.4.1.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (6.0.5334.0) (x64)</description>
<description>Copyright: (c) Maze Solutions LLC. All rights reserved.</description>
<description>Licensee: Maze Solutions LLC, www.manifestmaker.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.4.1.1" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (6.0.5334.0) (x64)</description>
<description>Copyright: (c) Maze Solutions LLC. All rights reserved.</description>
<description>Licensee: Maze Solutions LLC, www.manifestmaker.com</description>
<description>License: 5 users license</description>

<dependency>
 <dependentAssembly>
  <assemblyIdentity name="Microsoft.Windows.GdiPlus" version="1.0.2600.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.4.1.0" type="win32"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (4.4.4813.0) (x64)</description>
<description>Copyright: (c) Maze Solutions LLC. All rights reserved.</description>
<description>Licensee: Maze Solutions LLC, www.manifestmaker.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.4"
     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.4.1.0" type="win32" processorArchitecture="x86"/>

<description>Built with: Side-by-Side Manifest Maker, Command Line (6.0.5334.0) (x64)</description>
<description>Copyright: (c) Maze Solutions LLC. All rights reserved.</description>
<description>Licensee: Maze Solutions LLC, www.manifestmaker.com</description>
<description>License: 5 users license</description>

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

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

</assembly>

 

 



Read more...