8

Diese Frage wurde vielleicht schon mehrmals gestellt, aber ich kann nicht die typische Lösung für mich arbeiten. Die proposed solution ist dies in der „app.config“ Datei zu setzen:Ausführen von .NET 3.5-Anwendungen auf .NET 4 nur Systeme

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

Aber mit einem einfachen „Hallo Welt“ Programm, bekomme ich immer noch die Fehlermeldung: „Es kann keine Version der Laufzeit finden, dies zu laufen Anwendung.".

Als Hintergrund verwende ich Windows XP (über Windows Virtual PC unter Windows 7) und installierte nur die .NET 4.0-Laufzeit unter XP.

Nach einigen Recherchen fand ich diese Seite: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

Es erwähnt: „Wenn Sie Ihre Anwendungskonfigurationsdatei applikations name.config benannt ist, benennen Sie sie in anwendungs ​​name.exe.config beispielsweise umbenennen. MyApp.config zu MyApp.exe.config. ".

Ich versuchte das und dachte, es könnte das Problem lösen, aber ich bekomme immer noch "nicht finden eine Version der Laufzeitumgebung, um diese Anwendung auszuführen." wenn ich versuche, die .NET 3.5 (Client-Profil oder Voll) -Anwendung auf WinXP mit .NET 4.0 auszuführen.

+1

Dies funktioniert bekanntermaßen gut. Du hast es nicht wirklich in "MyApp.exe.config" umbenannt, oder? Ersetzen Sie MyApp durch den Namen Ihres Programms. –

+0

Nein, ich habe es von "app.config" in "app.exe.config" umbenannt, da es bereits "app.config" genannt wurde. Der Name meines Programms ist eigentlich "testOnNet40only". Nathan unten scheint zu implizieren, dass der Benutzer CLR 2.0-3.5 benötigt, obwohl ich nicht sicher bin, ob irgendetwas funktioniert. –

+1

Das scheint zu sein, worüber ich spreche. "app.exe.config" ist nicht gut, Sie müssen es "testOnNet40Only.exe.config" nennen. Und wenn Sie den Debugger mit aktiviertem Hosting-Prozess verwenden, muss er "testOnNet40Only.vshost.exe.config" heißen. –

Antwort

6

Ich habe es geknackt. Das mag doof klingen, aber es stellt sich heraus, dass die Konfigurationsdatei mit der endgültigen ausführbaren Datei im Benutzerordner sein musste. Nach all meinen Recherchen schien dies nirgendwo geklärt zu sein. Ich dachte, dass es nur für Kompilierungszwecke verwendet wurde, um im Entwicklerordner zu sein.

In der VS-Editor-Dateiliste kann es als "app.config" verbleiben. Beim Kompilieren erstellt VS jedoch automatisch "{ProgramName} .exe.config" (und legt es im Ordner "bin/release" ab). Dies ist die Datei, die zusammen mit der ausführbaren Datei in den Ordner des Endbenutzers verschoben werden muss.

Zusammenfassend, ja, es ist möglich, eine .NET 3.5 App auf einem System zu starten, auf dem nur .NET 4.0 installiert ist.