views:

128

answers:

4

I wrote my simple desktop program in C#. I am reluctant to distribute it on the internet because i am not sure if users will go through pain of installing the .Net Framework. My target users are non-tech savvy users.

I am very familiar with MFC and I probably can write this program in MFC in a month. MFC is nice because I don't have to worry about distributing other components. It will be one nice single executable.

So my real question is this: Is it possible to write .Net app without worrying about distributing .Net Framework?

Update I found another solution: If you are using Innosetup, there is a script that installs .net framework. http://www.codeproject.com/KB/install/dotnetfx_innosetup_instal.aspx

A: 

No.

Is your app targeting users who are not likely to already have at least 2.0 installed?

Jason
A: 

Depending on the version of the framework you're using, you're most likely not alienating too many people.

http://www.hanselman.com/blog/HowManyPCsInTheWorldHaveTheNETFrameworkInstalled.aspx

Austin Salonen
+2  A: 

If you use Windows Installer, it can automatically install the required version of the .NET Framework. Also, Jay is correct that the .NET Framework 3.0 is installed on Windows Vista and version 3.5 is included with Windows 7.

Brad Gignac
And surely, everyone still using XP has had to run something else that depends on the .Net framework and thus already have it installed.
Earlz
+1  A: 

You can do it with application virtualisation. There's a video that demonstrates using Thinstall specifically to avoid needing to distribute/install .net Framework 2.0: http://thinstall.com/demos/dnet20/

I haven't used it since it was bought by VMware but surely that wouldn't have a negative impact on the product. New product page: http://www.vmware.com/products/thinapp/

The good thing is once you've Thinapp/Thinstall'ed your program, the customer has no idea that they're running anything out of the ordinary. It still looks like a single EXE but contains any required dependencies which can quietly load in the background.

FerretallicA