2009-06-15 1 views
3

Ich versuche, eine sehr einfache C-Anwendung mit VS2008 zu kompilieren. Mein Problem ist, dass die resultierende Binärdatei erfordert, dass .NET installiert ist. Kein tatsächlicher Code innerhalb des Projekts verwendet .NET-Funktionalität, aber ich bekomme Fehler während der Ausführung auf jedem System, das nicht .NET hat.Wie kompiliert man mit VS2008, so dass binäre .NET nicht benötigt?

So ist es trotzdem mit VS2008 zu kompilieren, so dass die resultierende binären auf einem System ohne .NET ausführen kann?

+0

Siehe auch: http://stackoverflow.com/questions/768585/why-does-my-visual-studio-win32-project-require-net-3-5-sp1-to-install/768604 –

Antwort

3

Im Dialog Projekteigenschaften, Eigenschaften gehen Sie zu Konfiguration | Allgemeines. Die Option für "Common Language Runtime-Unterstützung" sollte auf "Keine Common Language Runtime-Unterstützung" gesetzt sein. Dann neu erstellen.

BEARBEITEN: Überprüfen Sie auch die Advanced Linker-Optionen, deren Namen mit CLR beginnen. Sie sollten keine/CLR * -Einstellungen für diese 3 Elemente sehen. Wenn Sie ein nicht standardmäßiges Manifest verwenden, stellen Sie sicher, dass es auch keine CLR-Abhängigkeiten deklariert.

+0

Mine ist Auf diese Weise, aber wenn ich versuche, die exe auf einem System ohne .NET zu starten, bekomme ich diesen Fehler: "Das System kann das angegebene Programm nicht ausführen." Wenn ich .NET installiere, funktioniert es gut. –

+0

Haben Sie andere Hinweise, dass Ihre Binärdatei .NET erfordert? –

+0

Wie installieren Sie .Net auf dem System? Installieren Sie .NET oder Visual Studio? Versuchen Sie, einen Debug-Build auf einem System auszuführen, auf dem Visual Studio nicht installiert ist? Die Debug-Binärdateien sind nicht weiterverteilbar. –

3

Erstellen Sie einfach eine C/C++ Projekt. Im Dialogfeld "Neues Projekt" unter Visual C++ haben Sie eine Reihe von Optionen. Alle in der CLR-Unterkategorie sind .NET (C++/CLI), und die Win32-Einsen (sowie "Empty-Projekt") sind native C/C++ - Projekte.

können Sie diese Einstellung ändern, auf bestehende Projekte unter Projekteigenschaften -> Allgemein -> Common Language Runtime Support.

bearbeiten

Es ist möglich, dass das Problem .NET nicht wirklich, aber die C-Laufzeit. Geben Sie in diesem Fall die Nicht-DLL-Versionen unter Projekteigenschaften -> C/C++ -> Codegenerierung -> Laufzeitbibliothek an.

(Und wenn das der Fall ist, können Sie uns die Dinge viel einfacher für alle könnten durch zu sagen, was Sie wussten, und nicht als das, was Sie über das Problem angenommen haben;.))

0

erstellen ein Win32-Konsolenprojekt.

1

Wie andere gesagt haben, stellen Sie den "Common Language Runtime-Unterstützung" auf "Nein Common Language Runtime Support." Du hast gesagt, dass das nicht behoben wurde, also muss .NET nicht die fehlende Abhängigkeit sein. Schauen Sie sich das kostenlose Tool Dependency Walker an. Dadurch werden dir alle Bibliotheken angezeigt, von denen deine App abhängig ist.

Verwandte Themen