Hi,
I am back with more news. After a couple of hours of going through ProcMon logs with no success I started going back to searching for other developers on Google that encountered this problem. This way I found the
following MSDN thread, with updated info about "desktop.ini" file.
The last two posts from there are relevant, it says the problem appears because of the "Read-only" attribute set for "desktop.ini" file from "C:\Users\Public\Desktop(Public Desktop)".
Note! To see the file "desktop.ini" you must change the Windows Explorer settings, to show system files.
I tested this "fix" and it seems to work. Why the file gets marked read-only I don't know, I guess this is something we must thank Microsoft for.
The solution is simple, I created a DLL custom action (new attached custom action) that runs on uninstall and removes the flag, if present. I attached a .zip containing the DLL file and a sample aip file created with version 9.8, so you can see the settings I used and implement them in your packages.
For those of you that don't have a maintenance plan to cover version 9.8 you can download and install it side by side, in trial mode, as you just need to open the project. After you finish you can uninstall it.
I am not 100% sure this is the problem, but so far I was not able to reproduce the problem at all and using this I got 100% success in all tests, on 4 different machines, so I assume this should do it. Feel free to let us know if there are still cases where this solution is not enough.
Also, I must let you know that this problem is reproduced on Vista too, if any of you have already reported that sorry, I must have missed it.
Best regards,
Bogdan