2016-01-20 5 views
5

this announcementがあります.Net Coreの名前が1.0に変更されています(混乱しますが、何でも良い)。その中でハンゼルマン州.Net Coreは標準の.Netと同じILを生成しますか?

It doesn't yet support VB or F#. 

私は何かが不足していると思います。私の論理は次のように働く。

2つのシンプルな単純なHello WorldアプリケーションをC#で1つ、VBでもう1つ使います。標準のmsbuild/.Netフレームワークを使用してコンパイルするときは、単純なままにしておくと仮定すると、同一のILを取得する必要があります。それはあなたがその後、そのレベルですべてのILだから、同じdllを実行する.Netコアを得ることができると私の理解です。だから、なぜそれはVBをサポートしていないと言う?単純な状況(VB固有のものを参照する可能性が高い場所)を超えてサポートしていないのでしょうか?それとも、.Net Frameworkと.Net Coreのコンパイル時に生成される実際のILが異なっていて、まだVB/F#コンパイラがないのですか?

+0

おそらくそれらの言語には、コアをサポートしていない独自の参照を持つ言語固有の参照DLL(Microsoft.VisualBasic.dllなど)があるためです。 – Jeff

+0

@Jeffええ、私は質問で - あなたは* vbアプリで 'Microsoft.VisualBasic.dll'を使用する必要はありません。*また、C#1でもうまく使えます。したがって、このDLLは.Net Coreに移動されていませんが、ILは同一であり、VB-Wont-Work、または実際のILが異なっていることは間違いありません。どちらですか? –

+5

ILの種類は1種類だけですが、.NETCoreのバージョンは違いはありません。 Microsoft.VisualBasic.dllが必要でないという前提は正確ではなく、コンパイラはそれを使用するコードを自動生成します。 Option Compareを観察する必要がある文字列比較のような基本的なもの。 F#とFSharp.Core.dllで同じ –

答えて

2

はい、それはVBパートに、それでも同じIL

(私は簡単なこと、それに答えるために抵抗することができませんでした)

を生成します:VB支援のに関しては:.NETのコア上で実行すると、コンパイラが必要です(これはRoslynで実装されています)、CLIコマンドdotnet-compile-vb(実装されていないF#コミュニティが提供しています)とMicrosoft.VisualBasic(corefxで実装されています)のサポートされているバージョンです。私は、VisualBasicのサポートのポイントは、例えばと同じですね。 ASP.NET SignalR。コードは95%あり、実行されますが、公式にテストされ、サポートされていません。それはテクノロジーではないタイムラインの問題です。

IMHO:Microsoft.VisualBasicアセンブリがあり、ILが同じであることを考慮すると、コンパイラがSystem.Runtimeベースのコアプラットフォームを使用していれば、理論的にはコンパイル済みのVBアセンブリを実行することさえできます。

関連する問題