Collecting all your DLLs?

Share interesting information or links related to portable apps here.
Message
Author
User avatar
webfork
Posts: 9786
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Collecting all your DLLs?

#1 Post by webfork » Sun May 02, 2010 4:55 pm

So I'm trying to save some space by putting duplicate DLLs all in one place and with good reason: here's just one screenshot of the hundreds of DLL files I've got in my portable collection:

Image

(click for larger image)

My idea:
  1. Put all the duplicate DLLs in that DLL subfolder (or maybe all the DLLs?)
  2. Run something like the below command to get everything in a "dll" subfolder

    @set path=%~dp0data\dll;%path%
Then can I delete all these space wasters and just dump all the DLL files in one unified folder? I know everyone here on the site could save some space in their collections that way. Thoughts?

User avatar
guinness
Posts: 4118
Joined: Mon Aug 27, 2007 2:00 am
Contact:

Re: Collecting all your DLLs?

#2 Post by guinness » Sun May 02, 2010 9:15 pm

I am intrigued, would this work though? I can imagine this will save MB's of space, I am always deleting unnecessary language files etc. Have you tested your idea?
Added 179 Applications: Portable

Hydaral
Posts: 194
Joined: Tue Mar 09, 2010 7:36 pm

Re: Collecting all your DLLs?

#3 Post by Hydaral » Sun May 02, 2010 9:59 pm

That would have worked well a couple of years ago, it may not work so well now that Windows has Side by Side.

http://en.wikipedia.org/wiki/Side-by-side_assembly

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: Collecting all your DLLs?

#4 Post by m^(2) » Mon May 03, 2010 3:13 am

I use it for several years already.
Never had issues with SxS.
Had issues with GTK, I don't remember much about it except that I decided to keep it with applications.
Had issues with GhostScript, I didn't manage to use it portably.

Also, it's used by TC UP, though not to full extent.

Disclosure:
I'm a member of TC UP team.

User avatar
webfork
Posts: 9786
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Collecting all your DLLs?

#5 Post by webfork » Mon May 03, 2010 2:45 pm

Well that's good enough -- I'll give it a try over the next few weeks and report back. I'll start with common DLL files and then move on to more specialized ones. This process could easily save 50+ megs of space.

Hydaral
Posts: 194
Joined: Tue Mar 09, 2010 7:36 pm

Re: Collecting all your DLLs?

#6 Post by Hydaral » Mon May 03, 2010 7:13 pm

m^(2) wrote:Had issues with GhostScript, I didn't manage to use it portably.
Did you know that Ghostview comes with a portable executable?

http://www.portablefreeware.com/forums/ ... php?p=9475

See the third post by uksamo.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: Collecting all your DLLs?

#7 Post by m^(2) » Mon May 03, 2010 10:33 pm

Hydaral wrote:
m^(2) wrote:Had issues with GhostScript, I didn't manage to use it portably.
Did you know that Ghostview comes with a portable executable?

http://www.portablefreeware.com/forums/ ... php?p=9475

See the third post by uksamo.
Thanks.

stanmarsh
Posts: 30
Joined: Fri Nov 13, 2009 9:19 pm

Re: Collecting all your DLLs?

#8 Post by stanmarsh » Wed May 05, 2010 5:47 pm

hi webfork,

i would also like to do this to save space, have you tried using symbolic links? i just found out about it today here http://www.howtogeek.com/howto/16226/co ... -or-linux/. it looks like it can be an alternative way to save space.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: Collecting all your DLLs?

#9 Post by m^(2) » Wed May 05, 2010 10:28 pm

stanmarsh wrote:hi webfork,

i would also like to do this to save space, have you tried using symbolic links? i just found out about it today here http://www.howtogeek.com/howto/16226/co ... -or-linux/. it looks like it can be an alternative way to save space.
Symlinks don't work on FAT file system, which is used by a majority of pendrives.
And actually I don't see how would you use it...

stanmarsh
Posts: 30
Joined: Fri Nov 13, 2009 9:19 pm

Re: Collecting all your DLLs?

#10 Post by stanmarsh » Thu May 06, 2010 5:28 pm

hi m^(2),

i tested junction using the command line ln.exe by Hermann Schinagl and its working great! :)

this is just another alternative to save space, i was thinking of a common files(libraries) folder, similar to portableapps common files folder but we will use symlink/junction so that other program can use it aswell, here you put all your common files like dlls, java, gtk, or any file that other program may also use, this will minimize duplicates, saves space and you can centralize the updates for dlls, java and other common files.

i just use java as an example using junction, you can symlink specific dlls to apps as needed, haven't tested it though, but i think it should work.

Example for Java

Common Files/Common Libraries
-Java (size approx 86mb)

OpenofficePortable [portableapps]
-App
-Java [Junction] (- 86mb)

X-Jampal_1.23_rev7.zip [winpenpack]
-Bin
-Lib
-Java [Junction] (- 86mb)

Freemind [app that needs java to run]
-App
-Java [Junction] (- 86mb)

the problem with this approach is at first you have to replace files to symlink/junction.
it would be easier if it can be automated with a gui.


cheers

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: Collecting all your DLLs?

#11 Post by m^(2) » Thu May 06, 2010 9:34 pm

Oh, you're fixing inflexible portabilisations this way. I see.

User avatar
webfork
Posts: 9786
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Collecting all your DLLs?

#12 Post by webfork » Wed May 19, 2010 2:36 pm

So I tackled this issue again today...

Testing MSVCR71.DLL:
    1. Ran a search to find the DLLs
    2. Unfortunately there were two. One is 162k and the other 340k, both with the exact same name. The one I originally saved from the PortableFreeware "required files" one was 340k.
    3. I ran "Hash" on the 340k files to make sure they were the same and sure enough they all came out the same.
    Four programs use this DLL:
    • * WinMerge
      * Universal Viewer
      * Rainlendar
      * TaskCoach
    I deleted their DLLs, saving only ~1.3 megs of space. All four programs seemed to work fine. Looks like this one passed.

    Verdict: success

Testing GDIPLUS.DLL
  • This file is much larger and there are more of them so there's a much greater opportunity for saving space. Unfortunately every single version of this file had a different size, indicating different versions.
    • * Photoscape
      * Audioextractor
      * EraserDrop
      * TaskCoach
    All programs seemed to work fine so the different versions didn't seem to cause an issue.

    Space savings was about 5 megs.

    Verdict: success

    Note: There were two GDIPLUS files in OpenOffice but given the complexity of this program its possible components use it and not the actual program so it would be difficult to test if the lack of DLL immediately caused problems. Will leave those alone.
----

So far the DLL removal process looks promising. The three DLLs I removed caused no problems at all.

Coming up...
  • * Test "wholesale" and delete 100+ DLL files.
    * Test on a "clean" Windows XP install and see if there are similar problems.

User avatar
guinness
Posts: 4118
Joined: Mon Aug 27, 2007 2:00 am
Contact:

Re: Collecting all your DLLs?

#13 Post by guinness » Mon May 31, 2010 1:00 pm

Any news?
Added 179 Applications: Portable

User avatar
webfork
Posts: 9786
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Collecting all your DLLs?

#14 Post by webfork » Mon May 31, 2010 3:40 pm

Nothing yet -- I've been tackling a few other problems of late before the DLL one. A lot of software testing for GPG4USB and playing with project management and mindmap / visio-style apps. Productivity stuff.

Marc
Posts: 157
Joined: Sun May 15, 2011 6:06 pm

Re: Collecting all your DLLs?

#15 Post by Marc » Wed Feb 13, 2013 12:57 am

What about using hard links in order to link the required dlls to the application folder.
Also I'm not sure if I recap correctly, but this reminds me of some kind of optimization for the libraries of linux portable apps.

Edit: That may not work for FAT32, it might otherwise be suitable for external hard drives.

Edit2: Missed earlier posts, fast reading and tiredness to blame.

Post Reply