System.EnterpriseSe#?
If you are brave enough to look at Whidbey's native image cache, you will see some odd directories ended with '#'.
C:\WINDOWS\assembly\NativeImages_v2.0.40607_32>dir *#
Volume in drive C has no label.
Volume Serial Number is 685B-4400
Directory of C:\WINDOWS\assembly\NativeImages_v2.0.40607_32
07/08/2004 01:59 AM <DIR> Microsoft.Build.Eng#
07/08/2004 01:59 AM <DIR> Microsoft.Build.Fra#
07/08/2004 01:59 AM <DIR> Microsoft.Build.Tas#
07/08/2004 01:59 AM <DIR> Microsoft.Build.Uti#
07/08/2004 02:08 AM <DIR> Microsoft.VisualBas#
07/08/2004 02:59 AM <DIR> Microsoft.VisualStu#
07/08/2004 02:00 AM <DIR> System.DirectorySer#
07/08/2004 02:00 AM <DIR> System.Drawing.Desi#
07/08/2004 01:59 AM <DIR> System.EnterpriseSe#
07/08/2004 02:03 AM <DIR> System.Web.RegularE#
What is going on here?
Actually, we were using the assembly simple name as the directory name. But someone comes up really long assembly name. The native image file paths of those assemblies exceed MAX_PATH limit. As a result, those assemblies cannot be ngened.
We could ask them to shorten their assembly name. Of course, we don’t have much luck of doing that. So we limit the directory name to 20 characters, and set the last character to ‘#’ to indicate this is truncated assembly name.
The directory one level down uniquely identities the native image. So name collision is not a problem.
Comments
- Anonymous
November 15, 2004
Maybe it's better to limit directory name to 40 characters? In this case all System.* assemblies would be non-truncated. - Anonymous
November 15, 2004
Why does %WINDIR%assembly need to restrict itself to MAX_PATH? You have the opportunity to use 2^31 characters there instead, and let a shell extension take care of presenting such a large path to a human.
And if somebody needs to mess around with these paths then they would have to think twice about it, because they just can't type "rd %windirassemblysomewhere /s/q" but must first implement a rd-prog which supports 2^31 characters :) - Anonymous
November 16, 2004
The choice of 20 character is arbitrary, since this directory is really just informational. You are not supposed to poke into native image cache anyway.
Andreas, good idea:) - Anonymous
June 07, 2009
PingBack from http://weakbladder.info/story.php?id=6911