Freigeben über


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