That annoying c:windowsassembly folder


If you are anything like me, you want to tear your hair out and smash your head on a concrete wall with embedded rusty nails everytime you need to use Explorer (and any file-open dialog box) on the c:\windows\assembly directory.


While I am still working with my therapist on these issues, I decided to be a bit more proactive and see how many system files I need to delete for me to be able to see the assembly directory properly in explorer. I decided to go about it in a systematic way and only stop after deleting boot.ini. Luckily, I didn’t get that far.


There is only one file that needs a’mucking.


Do the following:


1. In console, type “cd /d %windows%\assembly
2. Type: “attrib -r -h -s desktop.ini”
3. Type “ren desktop.ini desktop.bak”


Voila, explorer will allow you to go through the REAL directory structure.


Note that sometimes it’s useful to just have it in the original view, such as when you are a masochist or if you just want to drag&drop assemblies and let the GAC figure out where they belong. For that, simply do step 3 in reverse (ren desktop.bak desktop.ini).


Hope you find that as helpful and as soothing as I did.


P.S. This will work for other folders as well, such as the c:\windows\fonts directory etc.


s

Comments (60)

  1. Ron Krauter says:

    Thank you sir! Always wanted to do this.

  2. Try this too:

    cd /d %windir%assembly

    attrib -r -h -s desktop.ini

    mkdir gacview

    move desktop.ini gacview

    attrib +s gacview

    attrib +r +h +s gacview/desktop.ini

    Keeps your old view around (just in case).

  3. Jason Taylor says:

    Your therapist needs to stop you from looking on your computer where you aren’t supposed to look!  Curiosity killed the cat you know.

  4. Princess julie says:

    This may seem really stupid, but I was wondering why you would even want to use Explorer c:windowsassembly directory… Im just curious, and also, what IS this directory for?  Im researching everything c:windows (beginner tech)

    thanks!

  5. Shahar says:

    The assembly folder contains .NET assemblies that are potentially shared accross applications. There are other benefits for putting assembleis there – search for "GAC .NET" for more information.

    The reason you want a classic explorer view on these is that the structure of these directories is kind of complex and the names of the dirs/files potentially long. This makes using a command prompt to handle files in there somewhat annoying in some cases.

  6. mangomama says:

    Does it realy need to be so big. i have  my windows folder over 1.5 gig now this makes me feel bad on my smal computor. can i clean somethings out of there. it is 158 mb and the M.net folder is 127mb

    What is this fore..

  7. war59312 says:

    Yeah I wish Mangomama, since mine is 456 MB (479,015,039 bytes). 🙁

  8. marek. says:

    Yeah i wish both Mangomama and Will.. since mine is 2,1 GB.. 🙁 and the WINDOWSInstaller get close to 2GB too 🙁 with the pagefile of 1,5 GB and the hibernation file 1 GB i just blew off 7 GB for ‘nothing’.

    btw: anyone knows if it is safe to delete the file from WindowsInstaller ?

    Thanks

  9. Lois Lane says:

    Re C:WINDOWSassembly

    Is the DreamweaverCtrls.dll file supposed to be in this folder so that Dreamweaver can work with ASP.NET

    I am having issues with DataGrid in Dreamweaver 8 while using ASP.NET 2.0

  10. Prasenjit Biswas says:

    1. Open Regedit, browse to HKLMSoftwareMicrosoftFusion.

    2. Add a REG_DWORD value named ‘DisableCacheViewer’; set it to 1

    3.             open an Explorer window and type in C:WINDOWSassemblyGAC_MSIL

  11. Xunil says:

    If your are only curious of what is in the folder,use the IceSword.The size can be set in the way of resize cache.

  12. Fábio says:

    Can´t you just compress the damn thing ( mine is "only" 231 Megs, but I´m sure thinking about compressing the annoying "little" bastard ) ? Does anybody know how it would affect performance ? Oh, by the way, is .NET really worth it ? Can it really do something that amazing in order to justify the allocation of so much disk space ? Since my good old days of DOS programming, I always thought that MicroSh.t development tools are really buggy ( not to mention slower, chubby and some more adjectives I can´t really remember right now ) so I always preferred Borland or other stuff. Can´t we just put a fracking limit to little Bill´s byte hunger ( i.e., limit the size of the pitiful thing ) ?

  13. Shahar says:

    On new HDs, 231 Megs is 0.07% of the hard drive space. That’s less than one tenth of one percent. On laptops, that’s 0.3% of the hard drive space.

    It’s not a matter of amazing or not. There’s some software that will just not work if you dont have it, period. Remove it, but expect that some software will not work.

    And dont feel too bad. On my machine it’s 463Megs.

  14. Quinton says:

    OK… here goes. My %^$$$% assembly folder is over 27 Gig!!! My entire drive is only 55Gig. I have about 233k space left on my drive to work with!!! I pulled my hair out about 2 weeks ago!!! How is it possible that so much space is waisted with this stupid folder??? Does anyone know if it is safe to purge some of this crap?

  15. Spudbert says:

    Why is this thing hidden.  I came across it doing a Rootkit scan, and I just about wet my pants when the screen filled up.  I was certain I my computer was enslaved by a spammer until I found this column.

    Thank you for these postings.

  16. Mugol says:

    So, can somebody tell us is it safe enough to just compress the /assembly folder ??

  17. Shahar says:

    This is not an OFFICIAL answer, but I dont think anything bad can happen if you use NTFS to compress the folder.

  18. Jim Bauer says:

    I have an old copy of DOS’s DR directory tool from PC Magazine. In a DOS window it acceses the entire Assembly directory, no tricks or anything, just good old dos, sure looks different then what expolorer shows….

  19. Donat says:

    Try using ExplorerXP… (www.explorerxp.com)

    It enables you to view things in ALL folders… even "C:System Volume Information"!

    I am by no close or remote way related to this software. I’m just very happy using it

  20. Ash says:

    TILL NOW NO ONE HAS REPLIED IF IT IS SAFE TO DELETE THIS IDIOT c:windowsassembly folder.

  21. Steve says:

    I’m in the same boat, my C: drive is at 0kbs and my c:windowsassembley folder is 5.4 gbs, it was under 5gbs about 2months ago… really annoying as I managed to free up 1gb last night and now theres nothing…

    Please, if somebody can help with this issue, I’m sure many of us will sleep better!

    S

  22. Shahar says:

    It is unsafe to delete this folder.

    You are better off moving your page file/some program files into your D drive.

    One example of how you can do that is to take large applications/games, uninstall them and reinistall them on a different drive – most applications will retain their settings.

    Do this at your own risk though.

  23. Yogee says:

    I was very annoyed with bad exploring ability of the folder. There is no good way of searching assembly there. I wrote a tool here,

    http://gacbrowser.sourceforge.net/

    Hope it will solve problem of searching assembly.  also, it removes assemblies with "traced reference problem". I would love to add "backup" option for removed assembly in future..

  24. Mike Dempsey says:

    The ‘Assembly’ directory is not the only one Explorer screws around with.

    It also hides the DLLCache directory so that you can not replace ‘system’ dlls with different versions – something you sometimes need to do when debugging a customer problem.

    One solution to this is to dump Windows Explorer altogether and use a real file manager like the one in Norton NT Tools. Unfortunately Symantec no longer sell this product, but if you can find a copy it works very well … and gives you a lot of other useful features that Microsoft dont provide.

    I use this product 99.9% of the time. (even though it is 12 years old!) The one problem that forces me to use Explorer (temporarily) is when I  need to copy a file and the space in use is close to a 4GB boundary. (In 1996 there was no support for drives larger than 4GB so the app thinks my 120GB drive is full.)

    One more warning – if you are one of those strange folks who actually likes to store all their files under ‘My Documents’, that is also a ‘fake’ directory … so you have to navigate to the ‘real’ directory instead – about 3 levels down from the top … so not very convenient.

  25. Jelani says:

    You can also map a drive directly to your GAC and then you’ll be able to see the actual directory structure.

    Go into command prompt and type:  subst z: %windir%assemblygac

    I got this info from http://weblogs.asp.net/jkey/archive/2003/02/25/3006.aspx and am *very* thankful.

  26. TK says:

    ^^That was easy!!

    Thanks Jelani!

  27. Anthony says:

    Maybe the growing size of the assembly folder is because of the temp and tmp subfolders.

    BTW, assembly is compressed in my system and have no problem (168 MB, but 98.4 compressed).

    What about the Installer folder? Can be emptied? If a program needs the installer files, can I provide them when needed or the program will crash? Must I have the installers in this folder ‘just in case’?

  28. Pierre from Paris says:

    I just checked the file viewer in InfoFind (http://www.omnicognic.com/) and it displays the structure of [C:WINDOWSassembly] and even lets you quickly filter through it. Normally I just use InfoFind for Oracle and SQL Server Database Queries and Reports but it has a number of system utilities and a file viewer too.

  29. Mike says:

    Thanks Jelani that is def the easiest way to do it.

  30. Ivan Wilson says:

    Regarding the SUBST command that Jelani suggested, I had to modify mine slightly. This may be because I’m running on x64 (Windows 2008)

    My command is subst z: %windir%assemblygac_msil

  31. Alex says:

    You’ve all been talking about how Windows Explorer can’t view some files/folders such as C:System Volume Information but if you go to (in Windows Explorer) Tools > Folder Options (click, (window opens)) > View (click) > (in the "Advanced Settings" box) "Hidden files and folders" > "Show hidden files and folders" (click) (then just a bit below that) > "Hide protected operating system files (Recommended)" (uncheck box) (then a window opens asking if you are sure that you want to show protected operating system files) > (Hit YES!) Then you will be able to see files and folders like "C:System Volume Information".

    I would also like to know why that the "C:WINDOWSASSEMBLY" folder keeps growing I know that the folder and the files it contains has something to do with .NET but what exactly do they do?

  32. frex says:

    I foolishly tried to install Roxio’s Creator 2009 and after 5 unsuccessful attempts ended up with a frozen PC.

    Upon furter investigation, I discovered that it had loaded 270M of stuff into my WindowsAssembly folder that I presume they need to make their "stuff" work.

    After recoving from the freeze, I uninstalled the Roxio crap and decided that I didn’t need all that WindowsAssembly stuff hogging up space on my PC.

    As everyone who has read your blog knows now, these new files are not visible to the Windows explorer.

    I started writing a Visual Basic app that would allow me to delete the new files, but it became more work than I wanted to get into.

    Therefore I did as suggested by renaming desktop.ini in the WindowsAssembly folder, copied all the junk files to a CD for safe keeping and then deleted them all.

    Thanks, I’m back to where I was before purchase of the useless $100 Roxio Creator 2009.

  33. mino says:

    LOL, I just LOL on somebody thinking about visual basic program to bypass Explorer 😀

    Get a real file manager and be done with it. (i.e.Total Commanede, Servan Salamnder, etc., etc.)

  34. VbNetMatrix says:

    Mino, that’s because you’re a C++ Troll.

    Vb6 is as good as anything and you can do as much as any language.

    sometime slower that’s true and something are harder to do (ex.: multi thread)

    by the way, I DID made a Vb6 program to show that assembly directory.

    in wasn’t on purpose, I was doing a search file and directory program, and I notice that the directory count was higher then what windows/property show.

    I started to investigate and even applying all the trick said here, there is 2 directory that will NOT be showed… although my Vb6 program does it.

    smile…

  35. VbNetMatrix says:

    Alex: I didn’t found that box to uncheck, did you applied some registry hack to show it ?

    I’m using WinXp Pro

  36. Flachschippe says:

    As has been said before, the WINDOWS/assembly directory implements the .NET Global Assembly Cache:

    http://en.wikipedia.org/wiki/Global_Assembly_Cache

    It grows every time software is installed that brings along a shared assembly, similar to shared DLLs installed in other system directories.

    It may also grow every time that .NET compiles CIL code to native machine code and caches the compiled result (in the NativeImages* subdirectory).

    I assume that the NativeImages* subdirectory can be safely deleted (because they can be recreated from the GAC* directory contents), but have not tried this.

  37. DaneBrooke says:

    This didn’t work for me (Win2K).

  38. Try XYplorer (www.xyplorer.com) for direct display.

    XYplorer: best of the  best "Windows File Manager and Explorer Replacement"

    (…)

    XYplorer is a multi-tabbed dual pane file manager for Windows, featuring a powerful file search, a versatile preview, a highly customizable interface, and a large array of unique ways to efficiently automate frequently recurring tasks. It’s extremely fast and light, it’s innovative, and it’s fun!

    (…)

  39. scraps says:

    if you really want to clean up your hard disk and don’t know what you are doing, just use the disk cleanup in

    start>programs>accessories>system tools

    then run disk defrag

  40. Charles Steppp says:

    Well knowing what can and can’t be whacked is important to me, since

    I’m a cheap B@#$@# with 5 daughters and a bunch of flash drive based

    netbooks. I’ve been backing up whole directories from my microscopic

    c: to my merely small d: and then putting shortcuts on C: pointing back.

    PIA!!!

  41. Yusuf says:

    1. Open Regedit, browse to HKLMSoftwareMicrosoftFusion.

    2. Add a REG_DWORD value named ‘DisableCacheViewer’; set it to 1

    3.             open an Explorer window and type in C:WINDOWSassemblyGAC_MSIL

    3 days I was experiencing this error. Thank you very much

  42. Fabio says:

    Man,

    You saved my day. Since houres i’m trying to fix this ***** problem. Never had before. And after houres, i find at your site the solution! Aweeeeeeeeesome! Set the right NTFS permission solved this damn issue!

    Thanks mate! You’re awesome!!!

    Fabio

  43. Lombo says:

       Hey, if ASSEMBLY file/folder keeps growing, you’ll have to delete a microsoft office/accounting program named assembly something and have to live with whatever that harms, but windows says it is only 12 MB, but it is really 8 gigabytes in assembly files. I have been tearing my hair out since my dad had my computer for business and wondered where 8 gigabytes went, and lately my computer’s disk space has been fluctuating when it idles so that bought my attention to this.

        Also, I doubt that compressing this space will harm anything since an NTSC compression is only to compress partially used blocks of information on the hard drive so that the unused space is freed up on large files.

        Although, compressing it only pushes the inevitable conclusion that this file/folder will always keep on growing until your drive is full if you have a microsoft office/accounting program that keeps updating.

                                                   – Lombo           ______      _

                      good luck               jy1235689       ( ^._.^)     ||

                                                         jy             / ____/—–IO|

  44. Ladylee says:

    Help! I’m clueless about what the window/assembly folder is, but it keeps growing in size. Mine is at 73.1 GB already. I keep running out of diskspace, and I"m tempted to delete this folder.

    If I do, will my internet explorer be in trouble?

    Hope someone can reply to me asap.

    C",) Ladylee06 C",)

  45. Inquisitator says:

    Ladylee 73 GB seems alot to me, are you compiling global weather simulations on your machine or something?

  46. neminem says:

    Oh, man. That is awesome. As a primarily .net developer these days, this has always bugged me, and I finally got fed up today much the same way you did, and thought I'd google about. You could always get a real explorer window by opening windowsassemblygac_msil directly, but that only worked opening a new explorer window – browsing there always failed with some generic error. Not anymore! Amazing that it only took removing that one file; I'll have to remember that for other similarly annoying views I know exist.

    I'm pretty sure anyone with 50 or 70 gigs in their GAC is probably doing something wrong, though…? .net 2's about 900 megs, and .net 4's another 600, which is fairly big, but nothing like that. And I've only got another couple hundred megs of extra dlls in the user-modifiable parts of the gac, and that's where much of our compiled code ends up!

  47. neminem says:

    And then I learned what the NativeImages folders actually were, and felt silly. I guess having 70 gigs in those folders just means you have a ton of programs installed that were written in .net? That's a lot of programs, though. (Or really enormous ones.)

  48. Saf says:

    I need to move/copy 3 dll files to assembly folder on my windows 7 laptop…it just wont allow me so need help please. also on console i get access denied when trying to run commands for changing/modifying attrbibutes ….help please!!!!!!

  49. oldfogey says:

    Thanks for this.  Doing a manual cleanup after a rootkit removal, there were 782 (!!!!) junk subdirectories created in Windowsassemblytmp .  This allowed me to delete all of these directories for peace of mind (they were all empty, but it was driving me crazy to see them there)

    Thank you!

  50. migelle says:

    … or you can simply use total commander with checked: show hidden files

  51. Rick (aka; Gumbie02151) says:

    I recently got this virus (ZeroAccess.C) The non-rootkit revision apparently. Norton AV stopped it partially but not fully. At first detect, I shutdown and placed jumper on hard drive to make it Read-Only. I like to investigate virii I get from time to time, especially the ones that make it past my AV.

    To make a long story longer, I finally managed to clean my drive of the infection, at least enough that it wasn't re-infected after booting.

    I am currently dissecting the binary as much as to my ability, and I noticed a few things people should be aware of; The systems x509 stores have been compromised. Fake certificates inserted, valid ones deleted, or moved to banned store. This is large scare, 100+ edits I can see.

    Another thing, is this looks for various installed software, and for instance say you have SVN Subversion for windows, like I do, then the virus claims the daemon for its own, working as svncache, but also tagging files you'd check-in. I assume to propagate itself to others. It also puts dormant code in Visual Studio's libraries. I assume waiting till you use the tainted item, and then re-infection! Every AV scanner I used misses all of the mentioned issues. I am in the processes of making a better cleaner, this will entail completed uninstall of all programs that are checked for. complete erasure! Obviously a clean wipe and re-install is best, but keep in mind this virus pollutes DLL back-up cache along with restore points.  The thing that got me was once you start to try to remove it, it makes it look as if your installed AV is a problem, I hopes you uninstall it, and then the virus can embed itself deeper I would assume (I haven't let it do this yet, but the 'blame the AV' is obvious).

    The windowsassembly folder is special, you can see it better if you have Cygwin installed, or at least 'ls' Cygwin style to use….   Besides Desktop.ini that is polluted, a few shellEx's are setup, that re-infect on simple and common actions a user will do.

    I read that this version is really a bot, that gives the hacker remote control of the machine.. I am looking for the bot-nets URL address, entry point, and common auths, as to track down the distributor, and spy on them using their own virus. Oh also forward anything found to proper authorities….

  52. Rick (Gumbie02151@gmail.com) says:

    If you have variant.C drop me an email, as I need to test my cleaner, and you are in need of a cleaning!  Total wipe and reinstall is always your option, as the steps listed here, are NOT enough to rid your machine of this permanently!

  53. Senderbex says:

    To answer the OP and others question "is it safe to delete the windirassembly folder. The answer is categorically 'no' !!

    Amongst other things, it will stop all the MMC snap ins working. This is current up to Windows 2008 server. Go ahead and try it – I did (in desperation).

    Luckily I was able to robocopy the deleted files back from a near-identical server role (DFS server) and hope that the files locked open with transient / volatile data will be the same on each node!

  54. Tom says:

    Most of this is over my head but I followed a command prompt that has basically filled my assembly folder with gac 32 gac 64 gac msil etc. All the token folders are gone. Games wont run. Its win 8.1 I just want it back the way it was. It isnt / wasnt a huge dir anyway. Is there a command prompt to restore the default view. Thanks in advance.

    PS I was tempted to try the command at the start of this post as it is talking about reversing. I seem to have something Id rather not have and some of you guys would prefer.

    Please help.

  55. Tom says:

    Sorry for spamming but i was considering the the article advice but it doesnt seem applicable. Namely this

    1. In console, type "cd /d %windows%assembly

    2. Type: "attrib -r -h -s desktop.ini"

    3. Type "ren desktop.ini desktop.bak"

    I just want it back the way it was token lists etc

  56. Tom says:

    This came about through having win7 on one drive and win 8.1 on another. on win 7 assemblies is just empty. Causes issues with installing ati display drivers/c panel but everything works.. Followed some bad advice which didnt restore the default view. However when I booted over to to win 8.1 cli errors when running games and the assembly folder is full of gac 32 gac 64 gac util tmp etc. The fix recommended (a gacutil command) did not restore win 7 assembly and changed the view of assembly folder in win 8.1 both O.S now give mom and cli errors. Game runs on 7 same game wont run on 8 despite the command being used on win 7

    Man am I in deep water.

  57. Kevin W. says:

    *** TREAD HERE LIGHTLY ***

    This (stupid as I've seen above) folder is used by .Net for application managed by .Net.  It's like Java's Jar files — would you willy-nilly delete them?    

    There is a reason this folder is hidden — only proceed if you [not just know but] understand what you may be doing. These are DLLs and EXEs to make various application work on your PC.

    BTW: If you really want to go here, the best bit of advice was from Prasenjit Biswas…

  58. Anonymous says:

    You just need to type "C:Windowsassembly" to Chrome's address bar w/o quotes ^^

  59. Mayank says:

    thanks for info .It realy helped a lot.

  60. Robert says:

    VERY HELPFUL!  I love it!  Such a simple solution!  I was going to have to do all this crap to get "permission", and it was SO EASY!

    You are THE MAN!