Create a standalone exe without the need to instal

2020-03-01 05:49发布

问题:

I'm a student and at the moment i'm doing an internship at a company. This internship is about analysing a project. For this project I have made a demo to show to the Marketing director. The demo I have made is a simple project created in Visual Studio 2010 in c# with Windows Forms and a connection to an Access database.

So now i have to show this demo to this director in a presentation but after this presentation the director wants the project on his computer so he can try and use it. The problem is now that the computers here in this company don't have .NET framework 4.0 and the computers are so protected over here that we can't install anything new. To install something you have to go through a procedure that takes weeks.

I have looked al over the internet but all i find is how to install the .NET framework.

Is there any possible way that I can create an standalone exe without the need to install .NET framework? Please help!

回答1:

If you want to execute an application that is developed using Net Framework 4, you will need to have installed .Net Framework 4 on client computer.

Your application is compiled in CIL (Common Intermediate Language), so it needs to be interpreted by the framework engine.

It is the same if you want to execute a Java program. You will have to install the Java Machine.

The only way you don't need to install frameworks is programming native applications with C, C++.



回答2:

C# now supports this with .NET Native.

Instead of compiling to intermediate language, it will compile to native code and run with statically linked .NET libraries. Therefore, there will be no .Net Runtime requirements for end-users.

https://msdn.microsoft.com/en-us/vstudio/dn642499.aspx

https://msdn.microsoft.com/en-us/library/dn584397(v=vs.110).aspx

Only works for Windows 10



回答3:

You can't build a C# executable without .NET Framework. Even if some resources indicate that you can, that only works in theory.

But you could use an older version of .NET Framework like .NET 4.0. If this doesn't work for you, you have to choose a language like C++ which doesn't require CLR at all.

Update 2018:

Do not target .NET 2.0 or 3.5. It's not compatible with the 4.x version. However, .NET 4.0 targeted binaries work with .NET Framework 4.0, 4.5, 4.6, 4.7 and so on. So to reach maximum compatibility, compile with .NET 4.0. You will have to accept that some features will not be available, however, your binary will run virtually anywhere.

(2018: By now, .NET 2.0 - 3.5 has much lower distribution than 4.x)



回答4:

Delphi is your solution, deploy native bin executables



回答5:

YES, THIS IS POSSIBLE!

At least 3 ways exist:

1.you can check all OSes that you planning to run your app and build with such version of .NET. As Windows have a built-in framework libs.

Vista -.NET v3.0 -- All service packs

Windows 7 - .NET v3.5 -- All versions and service packs

Windows 8 - .NET v4.0 [Best choice if you are not sure]

Windows 8.1 - .Net v4.5

Windows 10 - .Net v4.6

as they are already pre-installed by default -- no extra install will be needed.


2.You can compile it into native code (but not into CIL) with ".NET Native". This is means that there are no .Net Framework will be needed for apps.

But looks like it works only with Windows 10.


3.There is Turbo Studio (earlier Spoon and earlier XenoCode) that can wrap everything that your app needs and runs it in as a standalone.

From their site:

Turbo Studio

Run .NET Without .NET. Easily embed runtime dependencies such as .NET, Java, and SQL directly into virtual applications. Launch reliably on any desktop, regardless of underlying component installs.



回答6:

You can use Mono and statically link you program, so your program don't need .NET CLR runtime and act as standalone program.

Mono Project



回答7:

To be honest, it really isnt a problem nowadays. the .NET framework is found on almost every single computer nowadays, and you can even make a installer with Advanced Installer that silently install the .NET framework on your computer when you are installing the programme.