Сборка VS для Mac 2017 с .NET Core SDK вместо Mono - PullRequest
0 голосов
/ 16 января 2019

У меня есть несколько решений, нацеленных на некоторую комбинацию .NET Standard 2.0 или .NET Core 2.1. У меня установлена ​​последняя версия .NET Core 2.1 SDK.

Когда я собираю их с помощью Visual Studio для Mac, я замечаю, что вместо инструментов dotnet используются инструменты сборки Mono, например csc.exe:

Target CoreCompile:
    /Library/Frameworks/Mono.framework/Versions/5.16.0/lib/mono/msbuild/15.0/bin/Roslyn/csc.exe 

Есть ли необходимость в изменении параметра или некоторых других свойств, чтобы он мог использовать SDK вместо инструментов Mono?

1 Ответ

0 голосов
/ 16 января 2019

Нет возможности использовать dotnet для сборки в Visual Studio для Mac. Он использует msbuild. Если вы действительно хотите это сделать, вам нужно обойти встроенную поддержку и использование msbuild, предоставляемые VS Mac.

VS Mac использует msbuild, поставляемый с Mono, потому что он поддерживает больше целевых структур (например, Xamarin.iOS, Xamarin.Android), чем MSBuild .NET Core SDK. Обратите внимание, что VS в Windows использует аналогичный подход, когда для запуска сборок он использует настольный MSBuild и не использует сборку dotnet.

Однако MSBuild от Mono по-прежнему использует различные целевые файлы MSBuild SDK, которые поставляются с .NET Core SDK. Существует средство преобразования MSBuild SDK, поставляемое с Mono, которое позволяет находить и использовать цели .NET Core SDK msbuild.

Также обратите внимание, что MSBuild от Mono включает в себя некоторые части .NET Core SDK, поэтому он может компилировать проекты .NET Standard без использования .NET Core SDK.

...