Solved

How do I deploy the app (a .exe) after coding is finished?

Posted on 2009-05-09
6
589 Views
Last Modified: 2013-12-17
How do I deploy the app (a .exe) after coding is finished?  Not that I haven't heard of XCopy, and not that I haven't been able to simply go to ...bin/debug and grab the executable there.  BUT, even though that has worked sometimes (with little apps), it SURE doesn't seem like this is the right way of doing things.  I've just recently tried: (VStudio Menu Item): Build:: Publish [name of App].  At least that makes a Setup executable, ... but no .exe was made from this that I could find ....  Last, I know that there are ways to build the final solution so that, when deployed, no one can (simply or easily) deconstruct and then read your program (decompiling MSIL code, or something like that).  How is this done (or if that is too big a question, please point me in the right direction: N, S, E or W).  Thanks much!
0
Comment
Question by:Sperling1
6 Comments
 
LVL 9

Expert Comment

by:tculler
Comment Utility
Well, I'm not big on Deployment (apparently, neither are most of the guys at Microsoft--nothing against them, though ;) ), but there are a few things I can help with:

First, when you are ready to "release" your application, change your build from "debug" to "Release". This is shown in the top menu bar in Visual Studio. This strips your program of variable names and such, making it a little more efficient, but don't expect to get friendly debugging information, here.

Second, you can create what is called a "native image" of your application by using a program called NGen.exe, provided by Microsoft (guess that'd be North, according to your directional reference). I hate posting links, but this seems to have need of one, so here you go: http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx
0
 
LVL 10

Expert Comment

by:oxyoo
Comment Utility
Hi,
To some extent prevent reverse engineering of your application, you may use tools such as Themida, Dotfuscator, etc. Be aware though, that most of them are expensive and are not impossible to break.
When it comes to deployment of your software there are various ways to go. You can deploy your application .exe (with any bundled configs, images, etc) using ClickOnce or the Visual Studio built in Setup project. You can even use a third party Setup project such as provided by Nullsoft.
Good Luck!
0
 
LVL 1

Accepted Solution

by:
GhstTracker earned 500 total points
Comment Utility
Since these are exe files I would reccomend an MSI package.  This is a Microsoft Installer package and will install the application any dependencies as well as custom configuration files, registry entries, shortcuts etc.  There are multiple ways to create an MSI, you can use Visual Studio's built in Setup Project (Use the Setup Wizard for simple/first time)  the Visual Studio project is basic and not as easy to create as some 3rd party install software such as Installshield.  You can use WIX (WIndows Installer XML) in which you create the MSI package using a combination of XML Files.  FInally you can use 3rd party applications like InstallShield. Depending on the complexity of the install package (custom dialogs, custom actions etc) this is the way to go.  InstallShield for example provides a high level of customization with a very easy to use interface.  However I would still recommend the Visual Studio Setup Project for simple installs.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 3

Expert Comment

by:nhenny2009
Comment Utility
I would recommend using "ClickOnce" and "publish your project that way...ClickOnce can be configured to automatically push updates to each of the clients that have your application installed.  This can really go a long way in helping to keep your users current.  Best wishes.
0
 
LVL 3

Author Comment

by:Sperling1
Comment Utility
Thanks for all the help everyone, although I still have a lot of questions.  As for the msi install wizard, besides the fact it was hard to find where it existed, it leaves one with all kinds of questions about how it works in grabbing important pieces from your project, thus your left feeling unsure.  For simple XCopying, I appreciate what tculler said above: "change your build from "debug" to "Release".  Simple, but I think that the problems I was running into before (odd unhandled exceptions came up on other trial person's computer) was probably because it was still in Debug mode.  As for ClickOnce ... is it just me, or is that thing heavily geared to web publishing (and what is: UNC?)?  For the future, it was good to learn about WIX.  

Thanks for all the help everyone.
0
 
LVL 1

Expert Comment

by:GhstTracker
Comment Utility
Yes Click Once is geared more towards Web Publishing than it is deploying a "hard app".  Yes the Setup Project in Visual Studio does leave alot to be deisred.  You might look at an express edition of installshield (I think thats free)  that may provide you the best of both worlds.
0

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

IP addresses can be stored in a database in any of several ways.  These ways may vary based on the volume of the data.  I was dealing with quite a large amount of data for user authentication purpose, and needed a way to minimize the storage.   …
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 …
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

772 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

12 Experts available now in Live!

Get 1:1 Help Now