[Python.NET] problem with manifests

Mark Tigges mtigges at gmail.com
Fri Apr 25 21:01:38 CEST 2008


I'm evaluating pythonnet to see if I should switch from IronPython.
So far I'm liking what I'm seeing.

I have one question though.  I have a managed c++ dll which uses a
unmanaged dll which makes use of OpenMP.  I have to embed a manifest
in my managed c++ dll so that any .exe knows how to get vcomp.dll (the
openmp implementation) from the SxS cache.  (I really have no idea
what all that bullcr*p means, just what I've gleaned from researching
the issue - there's something special about OpenMP in this regard.)

So the manifest in the managed c++ dll looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT"
version="8.0.50608.0" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.OpenMP"
version="8.0.50608.0" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>


The second dependency node tells any exe from where to load openmp.

All except the python.exe in python.net, this is extraordinarily
frustrating.  Ultimately though I can work around it, I can embed the
OpenMP dependency in python.exe myself, but I'd rather not have to do
that.  It should just work.

Does anyone who understands all this bullcr*p have any insight into
what more I need to do to my managed c++ dll to make it work?

BTW: Fantastic work on this project, I'm very impressed.

Thanks,

Mark.


More information about the PythonDotNet mailing list