1
votes

I thought I understood this junk....

I have an exe compiled to use MFC dlls version 9.0.21022.8, and am trying to install to a machine that has NO x86_vc9 anything - no x86 at all. Just amd.

Anyway, I thought I was carrying what I needed in my installer, but it looks like I have the files in the wrong place relative to the exe, and do not have the bindingRedirect entries I need.

I have the MS dlls in directories under my exe directory like:

Exe Dir\Microsoft.VC90.MFC\dlls and manifest

Exe Dir\Microsoft.VC90.CRT\dlls and manifest

The dlls and manifest are for version 9.0.30729.1.

First, should the dlls and manifest just be in the exe directory instead of subdirectories?

Second, I put a dependency with dependentAssembly section containing the bindingRedirect entries in each manifest, but still no luck. Is that the place to put it? Should I just stick the bindingRedirect stuff in the application manifest?

Any help/ideas appreciated.

1
OK - I figured out what to do for my situation. I just reverted my support files back to 9.0.21022.8. However, it would be nice to know exactly how to get my exe to use the newer version rather than the old one.GTAE86
I see what is going on, and it makes sense for 9.0.21022.8 to be the requested version.GTAE86

1 Answers

0
votes

Revert the support files back to 9.0.21022.8. The compile/link process will use whatever version was installed for Visual Studio. That means, in this case, the binaries produced will by default use 9.0.21022.8. If I installed a VS service pack or update that required the use of a newer dll version, say for a control or whatnot, then my binaries would require that version, and I would need to carry it in my support files.