Mamy this announcement, że. Net Core zmienia nazwę na 1.0 (mylące, ale w porządku, cokolwiek). W nim Hanselman stwierdza:Czy .Net Core generuje taką samą IL jako standardową .Net?
It doesn't yet support VB or F#.
Co sprawia, że myślę, że czegoś brakuje. Moja logika działa w następujący sposób.
Wykonaj dwie proste proste aplikacje Hello World w języku C#, a drugą w VB. Zakładając, że zachowałeś prostotę, podczas kompilacji ze standardową strukturą msbuild/.Net powinieneś uzyskać identyczną IL. Rozumiem, że możesz wtedy zdobyć .Net core, aby uruchomić tę samą bibliotekę dll, ponieważ jest to IL na tym poziomie. Dlaczego więc powiedzieć, że nie obsługuje VB? Czy to nie obsługuje go poza prostymi sytuacjami (gdzie najprawdopodobniej powinieneś odwoływać się do rzeczy specyficznych dla VB)? Czy jest to fakt, że faktyczna IL generowana podczas kompilacji dla .Net Framework versus .Net Core jest inna i nie ma jeszcze kompilatora VB/F #?
prawdopodobnie dlatego, że te języki mają specyficzne językowo biblioteki referencyjne (np. Microsoft.VisualBasic.dll), które mają własne odwołania, które nie obsługują jądra. – Jeff
@Jeff dobrze tak, ale podałem to w pytaniu - nie * masz * używać 'Microsoft.VisualBasic.dll' w aplikacji vb (i możesz używać go dobrze w C# jednym). Więc to albo to, że ta biblioteka dll nie została przeniesiona do .Net Core, ale IL jest identyczny i nie jest do końca poprawny, że vb-wont-work, lub faktyczny IL jest inny. Który to jest? –
Istnieje tylko jeden rodzaj IL, wersja .NETCore nie jest inna. Twoje założenie, że Microsoft.VisualBasic.dll nie jest konieczne, jest niepoprawne, kompilator automatycznie generuje kod, który z niego korzysta. Podstawowe rzeczy, takie jak porównanie ciągów, które muszą obserwować porównywanie opcji. Tak samo dla F # i FSharp.Core.dll –