Wir haben this announcement, dass. Net Core umbenannt wird in 1.0 (verwirrend, aber gut, was auch immer). Darin heißt es in HanselmanErzeugt .Net Core die gleiche IL wie Standard .Net?
It doesn't yet support VB or F#.
Was mich dazu bringt zu denken, dass mir etwas fehlt. Meine Logik funktioniert wie folgt.
Nehmen Sie zwei einfache einfache Hello World-Apps in C#, die andere in VB. Angenommen, Sie haben es einfach gehalten, wenn Sie mit dem Standard-Msbuild/.Net-Framework kompilieren, sollten Sie identische IL erhalten. Es ist mein Verständnis, dass Sie dann .Net-Kern bekommen können, um die gleiche DLL zu betreiben, da es alles IL auf dieser Ebene ist. Warum also sagen, dass VB nicht unterstützt wird? Ist es, dass es es nicht über einfache Situationen hinaus unterstützt (wo Sie wahrscheinlich auf vb-spezifische Sachen verweisen würden)? Oder ist es, dass die tatsächliche IL, die beim Kompilieren für .Net Framework gegenüber .Net Core erzeugt wird, anders ist und es noch keinen VB/F # -Compiler gibt?
wahrscheinlich, weil diese Sprachen sprachenspezifische Referenz-DLLs (zB Microsoft.VisualBasic.dll) haben, die ihre eigenen Referenzen haben, die Core nicht unterstützen. – Jeff
@Jeff Nun ja, aber ich habe das in der Frage abgedeckt - Sie müssen nicht * Microsoft.VisualBasic.dll' in einer Vb-App verwenden (und Sie können es auch gut in einem C# eins verwenden). So ist es entweder, dass diese DLL nicht zu .Net Core verschoben wurde, aber die IL ist identisch und es ist nicht ganz richtig, dass vb-wont-Arbeit, oder die tatsächliche IL ist anders. Welches ist es? –
Es gibt nur eine Art von IL, die .NETCore-Version unterscheidet sich nicht. Ihre Annahme, dass Microsoft.VisualBasic.dll nicht erforderlich ist, ist nicht korrekt, der Compiler generiert automatisch Code, der es verwendet. Grundlegende Dinge wie String-Vergleiche, die Option Compare beobachten müssen. Ähnliches gilt für F # und FSharp.Core.dll –