Split .NET exe file into many smaller ones

V

Vlado Jasovic

Hello,

We're developing application in VS2005 using vb.net.

Our application exe file is ~20mb when compiled.
Recently, we have developed auto-update feature that goes on our web-site,
authenticates through WebServices and if neccessary downloads updated
app.exe file. We had to use custom solution vs. ClickOnce for several
different reasons.

Now, problem that we have is that we would like to somehow split this exe
file into 10+ smaller dll files and update them if needed instead of
expecting users to download 20mb file when they only need update that's
100kb.

Any links, suggestions would help.


Thanks,

Vlado
 
J

Jigar Mehta

Hello Vlado,

I think that will involve changes at architecture level. You will have to
design the application like that, your object modal will also reflect that
design. There is no inbuilt option that you can break an EXE into multiple
DLL files by using some utility !

=============
Regards,
Jigar Mehta

Vv> Hello,
Vv>
Vv> We're developing application in VS2005 using vb.net.
Vv>
Vv> Our application exe file is ~20mb when compiled.
Vv> Recently, we have developed auto-update feature that goes on our
Vv> web-site,
Vv> authenticates through WebServices and if neccessary downloads
Vv> updated
Vv> app.exe file. We had to use custom solution vs. ClickOnce for
Vv> several
Vv> different reasons.
Vv> Now, problem that we have is that we would like to somehow split
Vv> this exe file into 10+ smaller dll files and update them if needed
Vv> instead of expecting users to download 20mb file when they only need
Vv> update that's 100kb.
Vv>
Vv> Any links, suggestions would help.
Vv>
Vv> Thanks,
Vv>
Vv> Vlado
Vv>
 
V

Vlado Jasovic

Hello Jigar,

I understand that this change will have to involve more than simply running
some utility but we would need some directions as to how to achieve it.

We were looking at having multiple projects within one solution but
cross-referencing would be huge burden.


Thank you for your input.
 
J

Jigar Mehta

Hello Vlado,

If you are using Visual Studio 2005, having multiple projects in one solution
(even different languages!!) and referencing them is not at all a burden.
You can easily do that. Start with modularize your whole project into small
parts and utilities. If you can separate some components, move their coding
into seperate DLL file and provide wrapper if needed.

It should not be so hard.

=============
Regards,
Jigar Mehta

Vv> Hello Jigar,
Vv>
Vv> I understand that this change will have to involve more than simply
Vv> running some utility but we would need some directions as to how to
Vv> achieve it.
Vv>
Vv> We were looking at having multiple projects within one solution but
Vv> cross-referencing would be huge burden.
Vv>
Vv> Thank you for your input.
Vv>
Vv> Vv>
 
R

Rad [Visual C# MVP]

Wow, that's a HUGE file!

Rather than split the EXE, I would suggest you refactor your
application such that it is composed of a several projects, each of
which compiles to DLL and the main project becomes the EXE.

Is this an option available to you?
 
L

Lloyd Dupont

Ho come it is so big?
..NET executable are typically very small unless they include resources (i.e.
any kind of file you use such as sound, picture, data model, etc...).
Perhaps you could put these resources in external assembly?
Or even plainly visible?
 
U

UJ

We are doing pretty much exactly what you are doing except our files are
much smaller.

What I did was move a lot of the classes into DLL so they can be downloaded
separately ( although I don't because my stuff is so small - usually less
than 500 KB. )

But I have one big solution that has about 6 projects that create EXEs and 4
more that create DLLs that are used by the EXEs. One caution though - make
sure you make the EXE projects dependent on the DLLs or they won't always
get recompiled when the DLL is recompiled.

Hope this helps.

Jeff.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top