http://bugs.winehq.org/show_bug.cgi?id=28225
--- Comment #9 from Skotlex skotlex@mailforce.net 2011-08-31 13:37:21 CDT --- When implementing the "windows behaviour", you have to consider the fact that Wine has a very non-windows-like option which allows you to specify DLL selecting priority.
When a higher version manifest is picked, but the DLL selected by this manifest is not usable, it is equivalent to not having that DLL installed. Currently Wine will simply bail out, as if the installation is broken. You should uninstall that manifest or restore the DLL.
This may not seem like common sense, but I can foretell there will be many bug reports concerning this issue in the future. When you select "DLL=native" and wine wants to force the built-in DLL (and fails because it can), that is against what users expect.
Perhaps, when looking for the manifest file to use, you should check if the DLL is available. So before selecting the highest level version manifest, it should ensure that the DLL it is pointed to is selectable, if not, the manifest should be skipped and the next one in the hierarchy should be selected.
But then again, this is just what I believe "most users" would expect Wine to behave like, regardless of what the official behaviour is documented to be.