이 컴파일러의 중요성은 무엇입니까? 필수품입니까, 아니면 할 수 있습니까? 어쨌든 다른 컴파일러를 갖는 목적은 무엇입니까? 아니면 미래형 프로젝트입니까? 간략한 개요를 주시면 감사하겠습니다.
이 컴파일러의 중요성은 무엇입니까? 필수품입니까, 아니면 할 수 있습니까? 어쨌든 다른 컴파일러를 갖는 목적은 무엇입니까? 아니면 미래형 프로젝트입니까? 간략한 개요를 주시면 감사하겠습니다.
답변:
Microsoft.Net.Compilers 패키지의 요점은 .NET Framework 또는 Visual Studio와 함께 제공되는 컴파일러가 아니라 해당 패키지와 함께 배포 된 컴파일러가 프로젝트를 컴파일하는 데 사용된다는 것입니다. 가장 실용적인 직접적인 이점은 프로젝트에서 C # 6 기능을 사용할 수 있도록 허용 한 다음 해당 프로젝트를 C # 6 컴파일러가 설치되지 않은 시스템 (예 : 지속적인 통합 서버)에서 빌드 할 수 있다는 것입니다. 전체 Visual Studio 2015를 설치하고 싶습니다.
현재 Microsoft.Net.Compilers에는 목적이 없습니다. 더 이상 사용되지 않는 NuGet 패키지이며 Visual Studio 16.5 이후에 생성되지 않습니다. Microsoft.Net.Compilers.Toolset이라는 후속 패키지가 있습니다. 이 패키지는 Microsoft.Net.Compilers와 기능이 거의 동일하지만 .NET Desktop 및 .NET Core MSBuild 인스턴스 모두에서 작동합니다.
그렇더라도 Microsoft.Net.Compilers.Toolset은 일반적인 사용을위한 것이 아닙니다. 이 패키지는 두 가지 용도로 사용됩니다.
이 패키지는 고객이 빌드를 위해 일반적으로 장기간 사용하는 것은 아닙니다 . 일부 고객이이를 선택했지만 이러한 사용도 지원되지 않음을 이해합니다. 이 패키지는 새 버전의 MSBuild 또는 .NET SDK의 작업 / 대상에 대한 종속성을 취하여 정기적으로 중단을 일으킬 수 있습니다.
빌드에 새 버전의 컴파일러를 사용하려는 고객은 대신 컴파일러의 공식 배포판 중 하나를 사용하는 것이 좋습니다.
참고 : Microsoft.Net.Compilers 패키지는 종속성이기 때문에 몇 년 전에 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 패키지의 일부로 공식적으로 지원되었습니다. 버전 2.0부터는 Microsoft.Net.Compilers에 대한 종속성이 제거되었으며 이제 완전히 독립적 인 패키지로 유지됩니다. 동시에 더 이상 명시적인 사용 사례가 없으므로 Microsoft.Net.Compilers를 더 이상 사용하지 않도록 이동했습니다.
즉, 일부 고객은 Microsoft.CodeDom.Providers.DotNetCompilerPlatform이 종속성을 삭제할 때 제거되지 않았기 때문에 프로젝트 파일에서 Microsoft.Net.Compilers가 예기치 않게 발견된다는 것을 의미합니다. 이러한 고객을위한 조언은 단순히 패키지에 대한 참조를 삭제하는 것입니다. 더 이상 필요하지 않습니다.
풍부한 코드 분석 API와 함께 오픈 소스 C # 및 Visual Basic 컴파일러를 제공하는 패키지입니다.
github에서 광범위한 문서를 찾을 수 있습니다.
다른 사람들이 말했듯이 C # 및 VB.NET 용 .NET 컴파일러가 포함되어 있습니다.
이 패키지의 흥미로운 점은 아직 Visual Studio와 함께 제공되지 않은 버전을 포함하여 프로젝트에 대한 컴파일러의 특정 빌드를 지정할 수 있다는 것입니다.
Visual Studio의 오픈 소스 구성 요소 인 https://github.com/dotnet/project-system 에서 사용합니다 . 이를 통해 VS와 함께 제공되는 컴파일러에서 지원하지 않는 언어 기능을 dogfood하기 위해 컴파일러의 시험판 버전을 사용할 수 있습니다.
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
v1.0.8 이하 의 종속성 이므로 그 이유 때문에 볼 수 있습니다