How do I compile to a single executable file?

I want to create a simple input application which only include 1 form (just like calculator). Is it possible for VB.NET to compile to a single executable file? So I don't have to create the setup application (or publish it), therefore I can distribute the file only by copying it (as long as it has DotNet framework 2.0 installed). If possible, how?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

This is done by default. However, if you reference DLLs or components that are not included with Windows or DOTNET 2.0 Runtime, then you have to opt for  Setup, or distribute those components with your application as well.

For instance, if you use custom controls in your app, then most likely it will be contained in a separate DLL which you'll have to distribute with your exe. Some of these components will have to be registered (For instance, using regsvr32.exe) on the client machine to function properly.

If you don't use any such custom/additional components in your app, you can simply distribute your exe.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Even when you need additional DLLs for your app, it is sometimes possible to embed these DLLs within your application exe, and design your application to unpack and use these components when executed. However, this is an advanced scenario, and usually too much trouble to implement, where simpler alternatives exist.
bujang6Author Commented:
I didn't use custom/additional components.

When I look inside the Debug directory, along with my compiled .exe file there are also other files (*.pdb, *.application,  *.xml, etc.). According to your comment, then these other files are unnecessary and I can just distribute the single .exe file?
You can ignore most files, but if your app uses predefined application settings, you may need the settings file.
As an aside, just for future reference, note that to use specific versions of side-by-side assemblies etc. (Not needed unless you know what you're doing, and specifically need this) you may need a manifest file for the application.

Alternately, a manifest can be embedded in the resource section of the exe itself.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.