http://bugs.winehq.org/show_bug.cgi?id=12401
--- Comment #32 from Hans Leidekker hans@meelstraat.net 2012-06-22 02:57:26 CDT --- (In reply to comment #31)
You could move FILE_CreateSymlink into wineserver. Then it would be atomic from the point of view of wine apps, at least.
It races with all filesystem operations, basically. For example, a file or directory with the same name could be created between the call to rmdir and symlink. So you would need to move all of them to the server.
And you'd still give up consistency with the filesystem's view outside of Wine.
If the goal is to get .NET 2.0 to install without changing the Windows version our time is probably better spent on fixing builtin fusion.
It can already install .NET 4.0 and I'm aware of only one bug that blocks running a simple .NET 2.0 app after installing the runtime with builtin fusion.
The bug is that the mscorlib assembly has a set of extra files (with extension .nlp) that should be installed alongside mscorlib.dll. They are present in the source directory but I haven't yet figured out how fusion determines that it needs to copy them.