In reference to bug #11973, I've the following observation.

Using the native .NET 2.0 installed via winetricks, I located what is potentially a problem with the method that .NET is using to locate the DLLs that it wishes to load.

The problem seems to be that .NET is attempting to locate the various DLL's it is going to use, by searching various directory paths. Once this does not occur (by placing a native DLL into the windows/system32 path) it causing a crash further down. It doesn't seem to utilize the LoadLibrary initially to locate but another function (from memory I think it NtCreateFile). With the native DLL in place it starts to process properly, at least until it runs into other files not located (as stated above).

I believe that .NET 2.0 is assuming that the files are located within the directory path (this may be so that it can independently utilize application supplied DLL files - I read that WinXP supposedly uses this policy to reduce problems with DLL dependencies).
This of course, totally by-passes the built-in DLL files (which should be located using this method, except that they do not exist in the paths .NET searches).

There are two possible ways currently that I can think of, which would potentially solve this problem:
1. Have symbolic links within the system directory (I find this to be bad method, for multiple reasons)
2. Have some interception of the searching for files located within the system32, to include all of built-in dlls.

Unfortunately, since I don't know a huge amount about Wine yet, I have no idea on how to code the second one, and I think having a patch for this, may solve quite a few problems that currently exist with using .NET based programs.


Get the name you always wanted with the new y7mail email address.