Friday, September 22, 2006

 

Windows reparse points. Not so transparent after all.

We use NDOC to build some of the documentation for our Windows product. I recently moved to a new machine with Windows XP x64 Edition and this was the first time I tried to build the docs after the move. I got the following strange error:

Error: Could not find file "C:\SOMEDIR\JavaDoc\JavaDoc.css"

Turns out that C:\SOMEDIR is in fact a junction point, i.e. a reparse point, and is really C:\OTHERDIR. Apparently this somehow confused NDOC (or whatever .NET functionality NDOC is using). Running from the real folder C:\OTHERDIR made the problem go away.

Of course I knew that C:\SOMEDIR is a junction point but this never caused a problem before. I got the clue as to the cause of the problem by running Filemon from
Sysinternals. Selecting "Log Errors" showed a lot of operations as failing with REPARSE in the Result-column. These failures may actually be normal when traversing a reparse point but it was the hint I needed to try running from a real folder.

Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?