Locally "installed" Dll's
Locally "installed" Dll's
Some small utilities that I sometimes run are often distributed as a .ZIP file containing the application and any DLL's that it depends on.
Windows has a behavior where if a DLL is located in the same directory as an application, windows preferentially chooses the DLL's in that directory over the same DLL that appears in C:\Windows\system32
Wine doesn't seem to behave this way (at least not version 1.3.28). Is that a correct assessment? If so, is there a rationale for why wine doesn't behave this way? And would it be difficult to implement? Or is there a setting to enable this type of behavior?
In my current case, I'd hate to have to install vcrun2008 in a perfectly good WINEPREFIX just to run one tiny application that came with its own dlls in its local directory.
Thanks.
Windows has a behavior where if a DLL is located in the same directory as an application, windows preferentially chooses the DLL's in that directory over the same DLL that appears in C:\Windows\system32
Wine doesn't seem to behave this way (at least not version 1.3.28). Is that a correct assessment? If so, is there a rationale for why wine doesn't behave this way? And would it be difficult to implement? Or is there a setting to enable this type of behavior?
In my current case, I'd hate to have to install vcrun2008 in a perfectly good WINEPREFIX just to run one tiny application that came with its own dlls in its local directory.
Thanks.
Re: Locally "installed" Dll's
You are correct. If Wine's dll isn't compiled to prefer native Wine will always try it's own first. This is intentional.ischou wrote:Wine doesn't seem to behave this way (at least not version 1.3.28). Is that a correct assessment? If so, is there a rationale for why wine doesn't behave this way?
It's already implemented. Add your program to winecfg applications (first tab). Select it, go to libraries tab, add whatever dlls you want it to use as native, and set them to "native" or "native, builtin" order.ischou wrote:And would it be difficult to implement? Or is there a setting to enable this type of behavior?
Newer (msvc7.0+) runtimes are special. They use manifest files, and won't work if not properly installed, or manifests are missing...ischou wrote:In my current case, I'd hate to have to install vcrun2008 in a perfectly good WINEPREFIX just to run one tiny application that came with its own dlls in its local directory.
Re: Locally "installed" Dll's
I'll try the custom application setting when I get a chance.
There is a manifest file included with the little utility program and the vcrun2008 dlls. Is there something special I need to do to tell wine to use this manifest file for this application?vitamin wrote:Newer (msvc7.0+) runtimes are special. They use manifest files, and won't work if not properly installed, or manifests are missing...
Locally "installed" Dll's
I would just use winetricks to install the vc2008 runtime.There is a manifest file included with the little utility program and the vcrun2008 dlls. Is there something special I need to do to tell wine to use this manifest file for this application?
John M. Drescher
Re: Locally "installed" Dll's
Try putting manifest and whatever msvc runtime dll(s) you need into the program's directory.ischou wrote:Is there something special I need to do to tell wine to use this manifest file for this application?
Re: Locally "installed" Dll's
Yes, that's where they are. Wine doesn't seem to see them to choose them as native over the built-in ones.vitamin wrote:Try putting manifest and whatever msvc runtime dll(s) you need into the program's directory.
Setting an application by application exception is okay except for the fact that I still need to install vcrun2008 and set different behavior for default versus this one utility app.
I was hoping to avoid having to install vcrun2008 into my WINEPREFIXES, as nothing else I had been running up to now needed it and the utility came with its own DLLs.
I guess I bite the bullet and install vcrun2008 into one of them.
Re: Locally "installed" Dll's
Have you added your msvc dlls under librareis tab? And have you set them to native?ischou wrote:Yes, that's where they are. Wine doesn't seem to see them to choose them as native over the built-in ones.
Re: Locally "installed" Dll's
Try deleting or renaming the fake vc90 manifest in windows/winsxs/manifests.ischou wrote: Yes, that's where they are. Wine doesn't seem to see them to choose them as native over the built-in ones.
Re: Locally "installed" Dll's
Thanks! This accomplishes the behavior that I want.dimesio wrote:Try deleting or renaming the fake vc90 manifest in windows/winsxs/manifests.ischou wrote: Yes, that's where they are. Wine doesn't seem to see them to choose them as native over the built-in ones.
Should wine include manifests to the built-in vc90 if they don't implement much of the required functionality?
Re: Locally "installed" Dll's
The downside to that method is that Wine will recreate those manifests every time you upgrade and the wineprefix is updated. You can prevent that by making that directory read-only.ischou wrote:Thanks! This accomplishes the behavior that I want.