title: Packaging a .NET Application So It Will Run On A Computer Without .NET
body: <p>I have been recently trying to deploy a C# application on a computer that does not have .NET installed.</p>
  
  <p>I know that there have been <em>many</em> questions around the same topic here on StackOverflow. Here are a few of them, of which I read the responses to all:</p>
  
  <p><a href="https://stackoverflow.com/questions/162845/packaging-up-the-net-framework-with-a-net-application-deployment">Packaging up the .net framework with a .net application deployment</a></p>
  
  <p><a href="https://stackoverflow.com/questions/7289213/run-a-net-application-without-installing-net-client-profile">Run a .net application without installing .net client profile?</a></p>
  
  <p><a href="https://stackoverflow.com/questions/4930831/run-c-sharp-windows-application-in-windows-xp-without-installing-net-framework">Run C# windows application in windows XP without installing .NET Framework</a></p>
  
  <p>So all of the responses to the above questions state that it is impossible without specific software, etc. One software mentioned was the <a href="http://www.remotesoft.com/salamander/navigator.html?demo" rel="nofollow noreferrer">Salamander .NET Linker</a>. The only problem with that is that I cannot seem to be able to run the application after it has been processed by Salamender. I understand that this in itself is impossible, as it requires the .NET virtual machine to run. However, in the past, I have made Java applications and along with them, I shipped the entire JVM. Surprisingly, they still worked. So the reason why this is not a duplicate of the above questions is because my true question is: </p>
  
  <p>What items of the .NET framework would I need to package? If I do manage to package all, would placing them in the same directory as the application I'm running allow the application to run?</p>
  
  <p>I found one solution to this, the <a href="http://www.microsoft.com/download/en/confirmation.aspx?id=26" rel="nofollow noreferrer">Microsoft .NET Redist Package</a>. The only problem with this is that it has a GUI of its own. Aside from that, it would be a perfect fit. So, could anyone tell me one of two things: </p>
  
  <p>Is there a command-line .NET package, and if so, where do I download it?</p>
  
  <p>If there isn't, or it would be impractical to do so, approximately what directories would I need to copy from the .NET installations?</p>
  
  <p>I understand that these files and directories are system specific, and that my .NET installation may not work on your computer, but if C# is like Java, then this should be achievable. Is it? Size is not a limitation, it does not matter to me whether or not the application and all its files is 1GB, or if it is only 1MB. </p>
  
  <p>If in case there is no other solution, I used <a href="http://www.dependencywalker.com/" rel="nofollow noreferrer">Dependency Walker</a> to check all the dependencies of my program. If I were to package most of them, would my application, in theory, work?</p>