location of activevfp.dll

Topics: Developer Forum, User Forum
Developer
Mar 2, 2013 at 12:32 PM
I want the activevfp.dll (and the Foxpro-runtime vfp9t.dll and all others) not in the same directory as default.aspx. What do I have to do ?

I think I have to change something in webapp.manifest.
I tried it with:

<dependentAssembly>
<assemblyIdentity name="activevfp.dll" version="1.0.3822.25700" type= ....... />
<codeBase version="1.0.0.0" href="C:\MyAvfpApp\Bin\activevfp.dll"/>
</dependentAssembly>

But that dosn't work. What is the right spelling?

Has anybody figured it out?

Thank you for your advice.
Markus Schnetzler
Coordinator
Mar 3, 2013 at 8:20 AM
I think I tried what you're doing but couldn't get it either. However, I didn't spend much time on it. Let us know if you get it to work this way.
Developer
Mar 4, 2013 at 4:32 PM
Hello Claude,

I found a semi-solution.
You have to let "activevfp.dll.manifest" in the main directory ( where web.config and default.aspx resides ).
On the line beginning with "<file name" you add the path before the dll's name. In my example "bin/activevfp.dll", see below.
Then you can move activevfp.dll, vfp9t.dll, vfp9rxyz.dll, .. etc. to that directory.
Incomprehensibly the "msvcr71.dll' has to stay in the main directory. As well, to me is not plausible, why you can't put that information directly in the "webapp.manifest".
            <assemblyIdentity name="activevfp.dll" processorArchitecture="x86" version="1.0.3822.25700" type="win32" />
here => <file name="bin/activevfp.dll" asmv2:size="29770">
                 .... etc.
Have a nice day,
Markus Schnetzler
Coordinator
Mar 4, 2013 at 5:01 PM
Edited Mar 4, 2013 at 5:02 PM
Thanks! That's good progress... so close.... There must be a solution for msvcr71.dll which is just used by the VFP runtime.

I thought VFP would first look for it in the same directory where it resides...
Developer
Mar 5, 2013 at 11:08 AM
So, now it works. Somtimes you don't see the most obvious. Like I supposed, the "activevfp.dll.manifest" is not needed for running the application. In fact it caused that trouble with the "msvcr71.dll". Just copy and paste the part "<assemblyIdentity" and "<file ..." from "activevfp.dll.manifest" into "webapp.manifest" and then throw it out of your application runtime directory.

Your "WebApp.Manifest" has to look like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="activevfp.dll" processorArchitecture="x86" version="1.0.3822.25700" type="win32" />
<file name="bin\activevfp.dll" asmv2:size="29770">
<hash xmlns="urn:schemas-microsoft-com:asm.v2">
  <dsig:Transforms>
    <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
  </dsig:Transforms>
  <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
  <dsig:DigestValue>fJ7kE7v1O5nl73zdEEvwIbMU28o=</dsig:DigestValue>
</hash>
<typelib tlbid="{ed1ecb89-1531-4579-b6a3-d8b622408517}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
<comClass clsid="{bef60ced-fb7c-4835-a927-4ec90f5162cb}" threadingModel="Apartment" 
                  tlbid="{ed1ecb89-1531-4579-b6a3-d8b622408517}" progid="pcxp_web.server" description="pcxp_web.server" />
</file>
</assembly>

One thing is tricky: On the line
<file name="bin\activevfp.dll"
you have to use a "\" (backslash), with a "/" it won't work.

The part "<dependency.." is not needed anymore.
Coordinator
Mar 5, 2013 at 1:52 PM
Edited Mar 5, 2013 at 1:55 PM
Thanks! Could you zip up that directory and send me those files? - claude.fox@cox.net

I'll include this in the next release. It'll make everything a lot tidier in the root directory.
Developer
Mar 6, 2013 at 8:11 AM
No problem, I'll send you. But give me two days. I'm a little bit in a hurry.