Distribution C# application

I just finished creating a C# calculator (Windows Form project) using Visual C# 2008 express, and wish to distribute it to friends. I could just copy and give them the exe in the debug folder, however let's say this way of distribution doesn't look professional, I would like to distribute it in a setup and install manner, just like the same way programs downloaded from the net like winamp, winzip..etc are distributed, where you download a setup file which you double click to install.

I don't like the ClickOnce publishing facility offered within Visual Studio 2008 Express because the setup file it produces doesn't give the user the option to change installation folder.It seems there is another alternative called Windows Installer, but from the way it is documented in the MSDN website it sounds complicated and have quite a steep learning curve and apparently its not available in the express edition of Visual Studio and need to upgrade to professional to get it.

If there is another deployment alternative please suggest it, if possible please give the easiest approach as I am entirely new to deployment.

Thanks in advance

Who is Participating?
käµfm³d 👽Commented:
I don't believe you can create deployment projects using Express editions. You best alternative would probably be to look into an open source installer project. For starters:


Although if you are going to pass out your new app by hand, you don't really need to provide the whole Debug folder. You only need to give the .exe file, the .config file if you added any configurable settings to the app and any .dll files that were generated in the Debug folder. .pdb files are only for debuggin, so you friends won't need those. The .vshost files are only for VS, so your friends don't need those either. You can switch your project configuration to Release mode and most of those files will not be in the folder anyways (the new folder will not be Debug, instead it will be Release).
Personally, if it's just for a restricted audience, I'd opt for simple .zip files or even just the executables; it annoys me to no end that for any piece of software out there, no matter how small, there's an entire setup program writing registry values and creating folders I'll never need. Seriously, if there's no reason at all for a setup, why do it? Just create a nice colorful icon for the .exe so the file can be recognized easily and just send it (especially if it's a .net project which can be easily compacted in just one .exe file, which can contain everything from other .dlls to graphics, resources etc.).
a_anis3000Author Commented:
Looks like pretty much I need to look for third party deployment software rather than the one that comes with visual studio. Wix unfortunately won't install saying that the express version of visual studio is not supported. I took a look at NSIS, sounds powerfull and full featured but there is a learning curve involved since its fully script based and lack wizzards for easy use and quick results.

I found another easier installer to get me started called Innuo Setup that offers wizards for easy and quick production of a professional looking setup. All I have to do is specify location of exe file, add relevant dependency files (dll..etc), check view boxes like allowing users to create desktop shortcut, change installation folder...etc and I am set,  which is more appealing for a beginner like my self.  

Of course I understand while the scripting approach is more complex it allows much more control of the creation of setup file, so I intend to go through the process of learning it at some point. But for now I rather go for the straightforward wizard approach. If somone know of other free software installers that offer similar easy wizard approach like Innuo Setup please list them and thanks in advance.

As for alex_paven's point of view. I full heartedly agree that if the project consist of just a single exe file or so, and would just give it to no more than couple of individuals it would be more practical to just give the exe file and no need for an installer. However my projects are begining to get more complex as I am advancing in C#, so I want to get into deployment now as it will come in handy once my projects becomes sophisticated and to be distributed to a wider audience in the future.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.