Distribution C# application

Posted on 2009-04-24
Last Modified: 2013-12-17
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

Question by:a_anis3000
    LVL 74

    Accepted Solution

    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).
    LVL 6

    Assisted Solution

    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.).

    Author Comment

    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.


    Featured Post

    Find Ransomware Secrets With All-Source Analysis

    Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

    Join & Write a Comment

    Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
    Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
    This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA.…
    This video discusses moving either the default database or any database to a new volume.

    746 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now