Danke für die Antworten; auf beide Arten habe ich es versucht. Aber ich bekomme nicht das erwartete Ergebnis. Statt .NET 3.5 bekomme ich eine 2.x.x Version angezeigt (läuft als Webservice) Woran könnte das liegen?
Die "interne" Version von .NET ist nicht die Version, unter der das Framework veröffentlicht wird. So haben z.B. die Frameworks 1.0 und 1.1 beide die Laufzeitversion 2.0.x.x und .NET 2.0 die Laufzeitversion 2.5.x.x.
Irgendwo soltle sich eine "Übersetzung" für die Nummern auftreiben lassen.
Ich glaube das Statement erhellt die Situation ein wenig:
The assemblies that are used for dynamic compilation might be for a later .NET Framework version than the version that the Web application targets. The GAC contains only the most current assemblies for each version of the CLR that is installed on a computer. Therefore, the compiler uses the most current version of the .NET Framework that is installed on the computer for the selected version of the CLR. For example, the .NET Framework 2.0, the .NET Framework 3.0, and the .NET Framework 3.5 all use the .NET Framework 2.0 CLR. If a computer has the .NET Framework 3.5 installed, and if a Web application uses an application pool that is associated with the .NET Framework 2.0 CLR, ASP.NET uses the .NET Framework 3.5 assemblies.
ich hab's bei mir mal durchgespielt; der compile der web-app für das zielframework 2, 3 und 3.5 ergibt immer ein binary mit der target version 2 -> das erklärt warum alle Reflection Abfragen auch tapfer 2 zurückgeben. Ein Compile für Framework 4 erzeugt dann endlich eine korrekte Target-Version ;-(
Version 3.5 könnte man evtl. über das Auslesen der web.Config von Version 2 & 3 unterscheiden; Zwischen 2 & 3 sehe ich gar keine Möglichkeit das korrekt auszulesen.
Angesichts der Probleme würde ich fast zu einem eigenen Flag tendieren das die kompilierte Version ausgibt?
Wenn das als Webservice läuft wird dein Programm - wenn ich mich recht erinnere - in der Framework Version ausgeführt die dort konfiguriert ist.
Im IIS war das glaub ich im Application-Pool einstellbar (sry. genauer weiss ich's nicht mehr, ist lange her). Abfragen lässt sich das dann auch nur wenn der Service-Host die passenden Informationen ausliefert.
hm... denkfehler, das wär von ausserhalb, du willst das ja innerhalb des Programms wissen... vielleicht hilft das hier weiter (kann das im moment aber nicht testen):
danke dafür; habe es versucht, aber hartnäckig wird die 2.0.x version angezeigt (obwohl 3.5 features benutzt werden ;-)) - ich stehe weiterhin vor einem rätsel
Irgendwo soltle sich eine "Übersetzung" für die Nummern auftreiben lassen.