Ich habe einige Build-Agenten, die .NET-Code für uns durch ein TeamCity-Setup erstellen, und ich frage mich, ob sie trotz der Projekteinstellungen .NET 4.5-basierte Assemblys ausgeben. Meine Zweifel rühren von der Tatsache her, dass ich nicht weiß, ob Windows 2012 Server standardmäßig mit .NET 4.5 oder 4.0 ausgeliefert wurde und ob es jemals nur 4.0 oder eine der verfügbaren 4.0-Baugruppen gab.Wie erkennen Sie, dass eine Assembly mit/für .NET 4.5 im Gegensatz zu .NET 4.0 kompiliert wurde?
Wie kann ich eine Assembly auf der Festplatte betrachten und feststellen, ob sie mit .NET 4.0 oder 4.5 erstellt wurde?
Wie aus this blog post by Marc Gravell hervorgeht, sind Unterschiede in der Art und Weise, wie diese Assemblys erstellt werden, obwohl wir tatsächlich keine .NET 4.5-Assemblys/Features verwenden.
Ich versuchte ILDASM auf der Versammlung mit, aber die Metadaten Bezug auf einen bekannten .NET 4.5 (0,1) Konsolenanwendung sagt noch 4.0:
// Metadata version: v4.0.30319
ich die Anwendung Windows 7 mit nur .NET versucht starten 4.0 installiert, und es beginnt, aber wenn der einzige Weg, um herauszufinden, ob alles funktioniert durch Testen alles, dann würde ich lieber ein bisschen mehr versuchen, um zu sehen, ob es mit der richtigen Version zuerst gebaut wird.
So ist das möglich?
zu schnell für mich! : D Ich habe den Link zu MSDN hinzugefügt. – leppie
Danke, dann produziert es 4.0 Assemblies, wie es jetzt konfiguriert ist. Eine Sorge weniger :) –
Ich führte auch diese Zeile in [LINQPad] (http://linqpad.net): 'Assembly.LoadFrom (@" d: \ dev \ vs.net \ app451 \ app451 \ bin \ debug \ app451 .exe "). GetCustomAttributes (typeof (TargetFrameworkAttribute)). Dump();' und es erzeugte die Assembly-Version. –