У меня есть приложение Sample C #, работающее под Windows, но не работающее на Mac OSX, которое я пытаюсь собрать с помощью 'сборки dotnet', но у меня возникает такая проблема:
Program.cs (18,21): ошибка CS0012: тип 'Enum' определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку 'netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51'. [/Users/paolo/unity/industrial/Projects/PublisherSample/PublisherSample.csproj]
Я использую последнюю версию Mono 6.4 и ориентируюсь на версию .NETFramework 4.7.1
Я добавилEnableFrameworkPathOverride, чтобы найти каркас 4.7.1 в Mono, используя:
<PropertyGroup>
<!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
<!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
<IsMac>$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))</IsMac>
<TargetIsMono Condition="$(IsMac)">true</TargetIsMono>
<!-- Look in the standard install locations -->
<BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
<!-- If we found Mono reference assemblies, then use them -->
<FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
<EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
</PropertyGroup>