Click here to Skip to main content
14,865,273 members
Articles / Programming Languages / C#
Tip/Trick
Posted 26 May 2012

Stats

120.4K views
49 bookmarked

C# Portable Exe File

Rate me:
Please Sign up or sign in to vote.
4.73/5 (23 votes)
26 May 2012CPOL1 min read
Making an exe file from C# project that runs from any Windows, without must of Net Framework instaled.

Introduction 

One of the disadvantages of C# is that when you want to run it, the computer must have .NET Framework installed on it. After this article, you will be able to make it runnable from any Windows without the must of .NET. 

How to do it?

  1. Make a C# project.
  2. In Solution Explorer, inside your project, there is a line "Reference". Click the plus near it. Now you can see all the dependencies of your project. Delete all references that aren't used (delete, and try to run/build. If it is possible to do it, that it is unused. If there is an error, return it by adding it (right mouse click, "Add Reference")).
  3. For each reference, go to Properties, and in the property "Copy Local" choose "True". For each Image, Icon... make like to the referenced.
  4. Rebuild you project. Now in your Build/Release folder (inside bin) you will see many dll files. Those files have the information of every resource.
  5. Copy all the files in the folder (from step number 4) into a new folder.
  6. Go to the folder: "<windows folder>\Microsoft.Net\Framework\<latest version>" and copy the file "mscorlib.dll" to the new folder from step 5.  If you don't find this file, you can always make a search in the Hard Drive which contains Windows folder.
  7. Now your app is portable (with the whole folder content).
  • All the referenced should be in the same folder as the .exe file.
  • If something is missing, there may be problems with the program.

Review

This solution is not the best. The whole program is heavy. But it is a solution! When you search the Internet, you will find such solutions like Portable Net, publish... But this one is quick, easy and does the right result.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

No Biography provided

Comments and Discussions

 
GeneralRe: My vote of 2 Pin
arthur zamarin30-May-12 1:51
Memberarthur zamarin30-May-12 1:51 
QuestionQuestion Pin
yogiCsharp29-May-12 20:12
MemberyogiCsharp29-May-12 20:12 
AnswerRe: Question Pin
arthur zamarin30-May-12 1:48
Memberarthur zamarin30-May-12 1:48 
QuestionDepends on CLR version Pin
Nicolas Dorier28-May-12 10:41
professionalNicolas Dorier28-May-12 10:41 
AnswerRe: Depends on CLR version Pin
arthur zamarin29-May-12 2:38
Memberarthur zamarin29-May-12 2:38 
GeneralRe: Depends on CLR version Pin
Nicolas Dorier29-May-12 2:43
professionalNicolas Dorier29-May-12 2:43 
GeneralRe: Depends on CLR version Pin
arthur zamarin30-May-12 1:54
Memberarthur zamarin30-May-12 1:54 
QuestionWhat ?? Pin
Jasper4C#28-May-12 1:43
MemberJasper4C#28-May-12 1:43 
And ? Did you try it ?? Does it work ? Please note that on Windows 7 (all versions) .NET installed by default even without update and all other Windows versions (like Windows XP) receive .NET Framework v1 by 'Update' process. Please remove all references to .NET in you computer and try to run middle-size .NET project. Tell us about result when cross running on x86<->x64 boxes...

Best luck
"I have not failed.
I've just found 10,000 ways that won't work."
- Thomas Alva Edison (1847-1931)

AnswerRe: What ?? Pin
arthur zamarin28-May-12 2:30
Memberarthur zamarin28-May-12 2:30 
Questiontypo or not Pin
pian_christian27-May-12 22:22
Memberpian_christian27-May-12 22:22 
AnswerRe: typo or not Pin
arthur zamarin27-May-12 23:48
Memberarthur zamarin27-May-12 23:48 
GeneralMy vote of 5 PinPopular
Gixabel26-May-12 6:16
MemberGixabel26-May-12 6:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.