2016-01-20 34 views
5

this announcement adresinde .Net Core 1.0 olarak değiştiriliyor (kafa karıştırıcı, ama iyi, her neyse). İçinde Hanselman, bir şeyi kaçırdığımı düşünmemi sağlar. Mantığım aşağıdaki gibi çalışır..Net Core standart IL ile aynı IL'yi üretir mi?

İki basit basit Hello World uygulamasını bir tane C#, diğeri de VB'de alın. Standart msbuild/.Net framework ile derlerken, aynı IL'yi almanız gerektiği konusunda basit tuttuğunuzu varsayarsınız. Bu benim anlayışımdır. Net çekirdeği aynı dll'yi çalıştırabiliyorsunuz, çünkü bu düzeydeki tüm IL'ler. Öyleyse neden VB'yi desteklemiyor? Basit durumların ötesinde desteklemiyor mu? Ya da .Net Framework ile .Net Core için derleme yaparken oluşturulan gerçek IL farklı ve henüz etrafında bir VB/F # derleyicisi yok mu? VB destek gelince: NET Core Running bir derleyici gerektirir

+0

muhtemelen, bu diller çekirdek desteklemeyen kendi başvuruları olan dile özgü başvuru dosyaları (örneğin, Microsoft.VisualBasic.dll) olduğu için. – Jeff

+0

@Jeff well evet ama bu soruya cevap verdim - bir Microsoft uygulamasında "Microsoft.VisualBasic.dll" yi kullanmanız * gerekmiyor (ve bunu C# birinde de kullanabilirsiniz). Yani ya bu dll, .Net Core'a taşınmamış, ancak IL aynıdır ve onun doğru bir şekilde doğru olmadığını, yani gerçek bir IL-wont-işinin ya da gerçek IL'nin farklı olduğunu. Hangisi? –

+5

Sadece bir tür IL var, .NETCore sürümü farklı değil. Microsoft.VisualBasic.dll dosyasının gerekli olmadığına dair varsayımınız doğru değil, derleyici bunu kullanan kodu otomatik olarak üretir. Option Compare'i gözlemlemesi gereken string karşılaştırması gibi temel şeyler. F # ve FSharp.Core.dll için aynı –

cevap

2

Evet bu

(Cevap vermek için Dayanamadım basit), VB Part

Yine aynı IL üretir (Roslyn'de uygulanmıştır), bir CLI komutu dotnet-compile-vb (uygulanmayan ... F # için şimdi uygulanan topluluk) ve desteklenen bir sürüm Microsoft.VisualBasic (corefx içinde uygulanmıştır). VisualBasic desteğinin noktası, örn. ASP.NET SignalR. Kod burada% 95, çalışıyor, ancak resmi olarak test edilmiyor ve desteklenmiyor. Bu teknolojiler değil bir zaman çizelgesi meselesidir.

IMHO: Microsoft.VisualBasic derlemesinin orada olduğu ve IL'nin aynı olduğu göz önüne alındığında, derleyici System.Runtime tabanlı Core platformunu kullandığı sürece, derlenmiş bir VB derlemesini bile çalıştırabilir.

İlgili konular