В чем важность этого компилятора? Это необходимо или можно обойтись без? В любом случае, зачем нужен другой компилятор, или это просто футуристический проект? Был бы признателен краткий обзор.
В чем важность этого компилятора? Это необходимо или можно обойтись без? В любом случае, зачем нужен другой компилятор, или это просто футуристический проект? Был бы признателен краткий обзор.
Ответы:
Суть пакета 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.Net.Compilers находится в их файле проекта, поскольку он не был удален, когда Microsoft.CodeDom.Providers.DotNetCompilerPlatform сбросила зависимость. Совет для таких клиентов - просто удалить ссылку на пакет. Это больше не нужно.
Это пакет, который предоставляет компиляторы C # и Visual Basic с открытым исходным кодом и API для анализа кода.
Вы можете найти обширную документацию на github:
Как уже говорили другие, он содержит компиляторы .NET для C # и VB.NET.
Интересным аспектом того, что это пакет, является то, что вы можете указать конкретную сборку компилятора для своего проекта, включая версию, которая еще не была отправлена с Visual Studio.
Мы используем это в https://github.com/dotnet/project-system, который является компонентом Visual Studio с открытым исходным кодом. Это позволяет нам использовать предварительные версии компилятора для тестирования функций языка, не поддерживаемых компилятором, который поставляется с VS.
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
версии 1.0.8 и ниже, так что вы можете видеть это по этой причине