このコンパイラの重要性は何ですか?それは必需品ですか、それともなしでできるのでしょうか?とにかく別のコンパイラを使用する目的は何ですか、それとも単なる未来的なプロジェクトですか?簡単な概要をいただければ幸いです。
回答:
Microsoft.Net.Compilersパッケージのポイントは、.NETFrameworkまたはVisualStudioに付属しているコンパイラではなく、そのパッケージで配布されているコンパイラがプロジェクトのコンパイルに使用されることです。最も実用的な直接的な利点は、プロジェクトでC#6機能を使用できるようになり、C#6コンパイラがインストールされていないシステム、たとえば、継続的インテグレーションサーバー上でプロジェクトを構築できることです。完全なVisualStudio2015をインストールしたい。
現在、Microsoft.Net.Compilersには目的がありません。これは非推奨のNuGetパッケージであり、Visual Studio16.5以降は生成されなくなります。Microsoft.Net.Compilers.Toolsetという名前の後継パッケージがあります。このパッケージは、Microsoft.Net.Compilersとほぼ同じ機能を備えていますが、.NETDesktopと.NETCoreMSBuildインスタンスの両方で機能します。
それでも、Microsoft.Net.Compilers.Toolsetは一般消費向けではありません。このパッケージは、2つの特定の用途に役立ちます。
このパッケージは、お客様がビルドのために一般的に長期間使用することを目的としたものではありません。一部のお客様がこれを選択することを理解していますが、そのような使用もサポートされていません。パッケージは、新しいバージョンのMSBuildまたは.NET SDKのタスク/ターゲットに依存することにより、定期的に中断を引き起こす可能性があります。
ビルドに新しいバージョンのコンパイラを使用したいお客様は、代わりにコンパイラの公式ディストリビューションの1つを使用することをお勧めします。
注:Microsoft.Net.Compilersパッケージは、依存関係であったため、数年前にMicrosoft.CodeDom.Providers.DotNetCompilerPlatformパッケージの一部として正式にサポートされていました。バージョン2.0以降、Microsoft.Net.Compilersへの依存関係は削除され、完全に独立したパッケージとして機能するようになりました。同時に、Microsoft.Net.Compilersの明示的な使用例がなくなったため、非推奨に移行しました。
これは、Microsoft.CodeDom.Providers.DotNetCompilerPlatformが依存関係を削除したときに削除されなかったため、一部の顧客がプロジェクトファイルにMicrosoft.Net.Compilersを予期せず使用していることに気付くことを意味します。そのような顧客へのアドバイスは、単にパッケージへの参照を削除することです。もう必要ありません。
これは、オープンソースのC#およびVisualBasicコンパイラに豊富なコード分析APIを提供するパッケージです。
githubで広範なドキュメントを見つけることができます:
他の人が言っているように、C#およびVB.NET用の.NETコンパイラが含まれています。
これがパッケージであることの興味深い側面は、Visual Studioにまだ付属していないバージョンを含め、プロジェクト用にコンパイラーの特定のビルドを指定できることです。
これは、VisualStudioのオープンソースコンポーネントであるhttps://github.com/dotnet/project-systemで使用します。これにより、プレリリースバージョンのコンパイラを使用して、VSに付属のコンパイラでサポートされていないドッグフード言語機能を使用できます。
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
はv1.0.8以下の依存関係でもあるため、その理由で表示される可能性があります