2013-05-23 6 views
11

Ich bin ein Student und im Moment mache ich ein Praktikum in einer Firma. Bei diesem Praktikum geht es um die Analyse eines Projekts. Für dieses Projekt habe ich eine Demo gemacht, die dem Marketing Direktor gezeigt wurde. Die Demo, die ich gemacht habe, ist ein einfaches Projekt, das in Visual Studio 2010 in C# mit Windows Forms und einer Verbindung zu einer Access-Datenbank erstellt wurde.Erstellen Sie eine Standalone-Exe ohne die Notwendigkeit, .NET-Framework zu installieren

Jetzt muss ich diese Demo diesem Regisseur in einer Präsentation zeigen, aber nach dieser Präsentation möchte der Regisseur das Projekt auf seinem Computer haben, damit er es ausprobieren kann. Das Problem ist jetzt, dass die Computer hier in dieser Firma .NET Framework 4.0 nicht haben und die Computer so hier geschützt sind, dass wir nichts neues installieren können. Um etwas zu installieren, müssen Sie eine Prozedur durchlaufen, die Wochen dauert.

Ich habe über das Internet al gesucht, aber alles, was ich finde, ist, wie man das .NET-Framework installiert.

Gibt es eine Möglichkeit, dass ich eine eigenständige EXE erstellen kann, ohne .NET Framework installieren zu müssen? Bitte helfen Sie!

+0

Auf welches Betriebssystem zielen Sie? (Und welche Service Pack-Stufe?) –

+0

Alle Computer hier sind mit Windows 7 installiert, wenn Sie das meinen. –

+0

Und welches Service Pack haben sie? Wenn sie Service Pack 1 haben, haben sie .Net 4.0, sonst haben sie .Net 3.5 (außer .Net 4.0 wurde separat von SP1 installiert) –

Antwort

10

Wenn Sie eine Anwendung ausführen möchten, die mit Net Framework 4 entwickelt wurde, müssen Sie .NET Framework 4 auf dem Clientcomputer installiert haben.

Ihre Anwendung ist in CIL (Common Intermediate Language) übersetzt, so dass es von der Framework-Engine interpretiert werden muss.

Es ist dasselbe, wenn Sie ein Java-Programm ausführen möchten. Sie müssen die Java-Maschine installieren.

Sie nur, wie Sie brauchen nicht Frameworks zu installieren ist die Programmierung native Anwendungen mit c, C++

+0

Und sogar mit C++ müssen Sie wahrscheinlich das VC++ Redistributable-Paket installieren. – flyx

+0

Sie müssen das Redistributable-Paket nicht installieren, wenn Sie ein Win32-Projekt in VisualC++ erstellen. –

+0

Wie schwer ist es, ein C# -Projekt in ein C++ - Projekt zu ändern? –

5

Sie können keine C# ausführbare ohne .NET Framework bauen. Selbst wenn einige Ressourcen anzeigen, dass Sie können, funktioniert das nur in der Theorie.

Sie könnten jedoch eine ältere Version von .NET Framework wie .NET 2.0 oder .NET 3.5 verwenden. Wenn dies für Sie nicht funktioniert, müssen Sie eine Sprache wie C++ wählen, die das .NET Framework nicht benötigt.

+0

Mein Programm verwendet jetzt .NET 4.0. Kann ich ohne Probleme zu einem älteren .NET-Framework wechseln? –

+2

@CharlotteVancraeynest Sie können das Ziel zu .Net 3.5 ändern und sehen, ob es sich aufbaut. Es könnte sein, oder es könnte nicht - hängt davon ab, wenn Sie eines der neuen .Net 4.x Zeug verwenden! –

+0

2016 Update: .NET 4.0-4.6 ist weit mehr verbreitet als die .NET 2.0-3.5-Laufzeit. Außerdem sind sie nicht miteinander "kompatibel", soweit es Binärdateien betrifft. Verwenden Sie das .NET Framework 4.0, das buchstäblich überall installiert werden sollte, mit Ausnahme von einigen sehr alten Windows XP-Computern. – bytecode77

6

Delphi ist Ihre Lösung, implementieren nativen ist Executables

8

C# diese jetzt mit .NET Mutter unterstützt.

Anstatt in die intermediäre Sprache zu kompilieren, wird es auf nativen Code kompiliert und mit statisch verknüpften .NET-Bibliotheken ausgeführt. Daher werden keine .NET Runtime-Anforderungen für Endbenutzer benötigt.

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

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

funktioniert nur für Windows 10

+0

Von dem, was ich verstehe, ist dies nur, um die Startzeit zu verkürzen, weil es keine jitting on the fly beim Start oder wenn die erste Funktion aufgerufen wird. Ich kann nicht sehen, wo es heißt, dass die .NET-Bibliotheken weggelassen werden können. – OlliP

+0

@OlliP Beide Artikel sind jetzt mit demselben verknüpft. Der vereinfachte Link ist [Kompilieren von Apps mit .NET Native] (https://msdn.microsoft.com/en-us/library/dn584397.aspx) Es erklärt, dass anstelle der JIT die IL in nativen Code zu übersetzen, Der .NET Native-Compiler wird direkt in nativen Code kompiliert. Weiter erklärt es, dass erforderliche Bibliotheksteile in der ausführbaren Datei statisch verknüpft sind. Kein externes .NET benötigt. > Während der Vorkompilierung werden die erforderlichen Teile von .NET Framework statisch mit Ihrer App verknüpft. Dadurch kann die App mit app-lokalen Bibliotheken von .NET Framework ausgeführt werden. – PeterFnet

+0

@OlliP Ich hatte keinen Text mehr in der vorherigen Kommentarantwort. Ich habe nicht viel experimentiert, um Apps mit dieser Technologie für andere bereitzustellen, aber ein theoretischer Nachteil könnte das Fehlen von .NET-Updates sein. Das Betriebssystem kann .NET-Updates über Windows/Microsoft Update beziehen, aber eine .NET-kompilierte Anwendung würde davon nicht profitieren. Das wäre das gleiche Problem wie statische MFC-DLLs und LIBs in einer EXE oder einer DLL verknüpfen. – PeterFnet

0

Um ehrlich zu sein, es ist wirklich ein Problem heutzutage ist nicht. Das .NET-Framework ist heutzutage auf fast jedem einzelnen Computer zu finden, und Sie können sogar ein Installationsprogramm mit Advanced Installer erstellen, das das .NET-Framework automatisch auf Ihrem Computer installiert, wenn Sie das Programm installieren.

+0

Immer noch nicht standardmäßig in Windows XP SP3, die in einigen Ländern auch im öffentlichen Sektor noch stark verwendet werden. –