tags:

views:

415

answers:

7

I have a strange requirement to ship an application without bundling .Net framework (to save memory footprint and bandwidth).

Is this possible? Customers may or may not have .Net runtime installed on their systems.

Will doing Ngen take care of this problem? I was looking for something like the good old ways of releasing C++ apps (using linker to link only the binaries you need).

A: 

If your software requires .NET then your end users will need the same version of .NET. You cannot "link in" .NET into your executable to create a single .exe, like you can with MFC or Delphi. If your installer doesn't install the .NET runtime then you will need to ensure that the user is aware if this and point them to the .NET download from Microsoft.

Mike Thompson
+2  A: 

have you checked salamander?remotesoft

worth taking a look. thanks.
cathy
oops it is good but expensive solution for me :(
cathy
+3  A: 

One option without using Ngen may be to release using the .Net Framework 3.5 SP1 "Client Profile". This is a sub-set of the .Net Framework used for building client applications which can be downloaded as a separate, much smaller, package.

See details from the BCL Team Blog here and Scott Guthrie here.

Aydsman
i check that. this is not an option for me. customers might not have internet connectivity.
cathy
I think there's a download you could include on your installation media as well.
Jonathan
Jonathan
...of course the amusing fact is that the "Client Profile" offline installer is bigger than the ".Net Framework 3.5 SP1" offline installer.
Aydsman
+2  A: 

Just FYI,

This topic is already discussed. Unfortunately I can't find the link at the moment (SO search should be improved).


Ok I found similar question:

http://stackoverflow.com/questions/11199/net-framework-dependency

I recall that there was exactly the same question, but I can't find it :(

aku
i tried searching too. could not find any.
cathy
SO search is terrible. I hope google will fix it soon :)
aku
A: 

You can use "Client Profile", it is a subset of .NET Framework for desktop applications. Size of client profile is about 20 MB

+3  A: 

Common solution in such situation which a the standard de-facto is that your customers should have the proper version of .Net framework, as soon as it's the part of Windows Update. So your installer should check availability of .NET of version your use on client's machine and propose to download it from Microsoft. This will prevent your company to transfer it through your channel and ensure your application has correct infrastructure,

dimarzionist
A: 

You can also include the bootstrapper 'setup.exe' that is created in VS. It'll detect whether you have the neccessary .net version, and if so, launch the installer; if not, it'll prompt you to download the framework.

TraumaPony