Laden...

.NET 4.6.2 Anwendung startet unter .NET 4.5 wirft aber jede Menge Fehler

Erstellt von HeikoAdams vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.401 Views
HeikoAdams Themenstarter:in
62 Beiträge seit 2017
vor 6 Jahren
.NET 4.6.2 Anwendung startet unter .NET 4.5 wirft aber jede Menge Fehler

Hallo,
ich wundere mich gerade ein wenig über das .net Framework. Unsere Anwendung erfordert das Framework Version 4.6.2, bei einem Kollegen war jedoch nur die Version 4.5 installiert. Die Anwendung lies sich trotzdem starten, hat ihn jedoch mit diversen Fehlermeldungen bombadiert.

Kennt jemand hier dieses Verhalten und hat eventuell eine Erklärung, warum sie die Anwendung überhaupt starten lies?

Wer ordentlichen Code schreibt, lebt entspannter 8)

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo HeikoAdams,

.net 4.6.2 ist ein Update von .net 4.5. Daher lässt es sich auch starten.

Nur die Reference-Assemblies sind andere, damit in Visual Studio beim Build die jeweils passenden Typen und Member vorhanden sind.

Wenn also Typen / Member verwendet werden, die mit .net 4.6.2 hinzugekommen sind, so kann das unter .net 4.5 nicht gut gehen, da diese dort eben niicht bekannt sind.
Einem Start der Anwendung steht aber nichts im Wege, da die CLR-Header gleich sind.

Probier einmal in VS das Target-Framework auf .net 4.5 umzustellen und schau ob dann der Build funktioniert. So siehst du was die Ursache für die Fehler unter .net 4.5 sein wird.

Aber die Lösung wäre einfach ein Update auf .net 4.6.2 😉

hat ihn jedoch mit diversen Fehlermeldungen bombadiert.

Welche? Sonst ist raten angesagt. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 5.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

HeikoAdams Themenstarter:in
62 Beiträge seit 2017
vor 6 Jahren

Welche? Sonst ist raten angesagt.

Diverse "Methode nicht gefunden" Meldungen. Der Kollege hat mittlerweile das Framework 4.6.2 installiert, damit er weiter arbeiten kann.

Wer ordentlichen Code schreibt, lebt entspannter 8)

T
2.219 Beiträge seit 2008
vor 6 Jahren

@HeikoAdams
Klingt danach als wurde die Anwendung für .net 4.6+ entwickelt.
Dort werden dann wahrscheinlich Methode genutzt zu werden, die es eben in .Net 4.5 nicht gab.
Können z.B. Extension Methoden sein oder andere Neuerungen.
Sich darüber weiter gedanken zu machen ist aber Zeit verschwendung, da eine Installation von .Net 4.6 das Problem löst.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

D
985 Beiträge seit 2014
vor 6 Jahren

Laut dem Ausgangspost ist die Anwendung für .net 4.6.2 entwickelt und es besteht seitens des TE keinerlei Erwartungshaltung darüber, dass die Anwendung funktionieren sollte, wenn nur .net 4.5 installiert ist.

Die Frage ist (siehe auch Ausgangspost), warum die Anwendung überhaupt gestartet wurde und nicht direkt beim Starten ein Fehler kommt: "Hey bro, du nix .net 4.6.2 - ich nix starten tue!"

193 Beiträge seit 2006
vor 6 Jahren

... warum sie die Anwendung überhaupt starten lies?

Die benötigte .NET Version wird über die App.config-Datei eingestellt.
Wenn ihr die bei eurem Kollegen nicht mit deployed habt (der Name wird dann zu ASSEMBLYNAME.exe.config), dann "weiß" Windows nicht wirklich welches Framework es braucht und nimmt halt das beste welches es findet.

Etwas mehr Hintergrundinfo und auch ein Anwendungsfall wie man dieses Verhalten für sich nutzen kann findet man in diesem Blog Post:
Faking out the .NET Runtime Version

Gruß Jake