C#コンパイラのバージョンや言語バージョンとの違い
誰もが十分に良い答えを与えないように、私は今、試してみるだろう。
まず、C#は、Microsoftがそのバージョン履歴を公開していますが、今、(明らかにMVPの記事から来ます)
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history
だから、簡単にそれぞれの新しいリリースで追加された新機能は何を見ることができます。
第二に、我々は最初の.NET Frameworkの一部であったのコンパイラリリース、についてお話します。
私はいくつかのマイルストーンをリストの下に、(100%正確ではないかもしれない、といくつかのバージョンがスキップされたかもしれません)
csc.exe
1.0(?)の.NET Framework 1.0(実装C#1.0)のために。csc.exe
2.0(マイクロソフト(R)のVisual C#2005コンパイラバージョン8.00.50727.8745)の.NET Framework 2.0(C#2.0、ならびに互換性のために1.0を実装)。csc.exe
3.5(マイクロソフト(R)のVisual C#2008コンパイラのバージョン3.5.30729.8763)の.NET Framework 3.5(実装C#3.0、および旧バージョン)のために。csc.exe
.NET Frameworkの4.0の4.0(?)(C#4.0、およびそれ以前を実装します)。csc.exe
4.xの(マイクロソフト(R)のようなビジュアルC#コンパイラのバージョン4.7.2053.0以上の.NET Framework 4.5および(C#5.0、およびそれ以前の実装)の場合)。(4.7.1に4.5.0)あなたのマシン上のバージョン番号は、.NET Frameworkのに基づいて(4.xからの12.xに)多くを変えることに注意してください。
その後、Microsoftは、古い作られたcsc.exe
(まだかかわらず、代わりに廃止された(彼らはネイティブ実行可能だったとして)、および出荷Roslynのベースのコンパイラをcsc.exe
)。I nはその間、C#コンパイラは、もはや、.NET Frameworkの一部が、VSの一部ではありません。
あなたは簡単にマルチターゲットを使用することができるようにC#コンパイラ、言語バージョン、および.NET Frameworkが完全に切り離されているのと同時に、でした。
- ロザリン
csc.exe
1.1(?)はC#6.0およびそれ以前を実装しています。VS2015に同梱。 - ロザリン
csc.exe
(2.xのマイクロソフト(R)のVisual C#コンパイラのバージョン2.4.0.62122(ab56a4a6)など)のC#7.xおよびそれ以上の年齢を実装しています。VS2017に同梱。
[OK]を、十分な背景。戻るご質問。
Q1:C#バージョン(ないコンパイラ1、しかし言語1)は私の具体的なプロジェクトをビルドするためにVSを使って何かを見つけるためにどのように?
回答:あなたは簡単にどのような言語バージョンが使用されているプロジェクトの設定から見ることができます。
明示的なバージョンを選択しない場合は、自動的によってサポートされる最新バージョンを使用することができcsc.exe
、プロジェクトをコンパイルします。
@Servy約@ DaniloCataldoの答えの下にコメントしていることに注意してくださいlangversion
詳細とスイッチ。このスイッチは、その設計目標と制限があります。だから、例えば、あなたがC#4.0に基づいてプロジェクトをコンパイルするロザリン2.xのコンパイラを強制しても、コンパイルされた結果は、C#4.0コンパイラが何をするかは異なるだろう。
Q2:C#コンパイラおよび言語バージョンの間、厳しい明確で透明性のリンクがありますか?
回答:私は、上記の背景を参照してください、私はすでにこの部分に答えていると思います。、厳格な明確で透明性のリンクがあります。
Q3:私は私の具体的な解決のためにさまざまなコンパイラのバージョンを使用するように(別のStudioバージョンからの移行の問題の場合)のVisual Studioに指示することはできますか?
回答:Q1に複製します。