CSC: ошибка CS0041: непредвиденная ошибка отладки информации об ошибке - "Операция на этой платформе не поддерживается".

Просто загрузите Visual Studio Professional для Mac, и я не могу ничего построить, поскольку всегда получаю ту же ошибку:

/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

CSC: error CS0041: Unexpected error writing debug information -- 'Operation is not supported on this platform.'

 19 Warning(s)
 1 Error(s)

Не уверен, что изменить в моем проекте, чтобы получить возможность компилироваться.

Ответ 1

Мне удалось решить эту проблему двумя способами:

  • HACK Удалив символы отладки из сборки (в окнах VS: Свойства проекта → вкладка "Создание" → кнопка "Дополнительно" → изменить раскрывающийся список "Отладка информации" до "нет" - не уверен, какой эквивалент в VS для Mac/Xamarin Studio) Я сделал это для всех конфигураций затронутых проектов. Возврат к macOS env, сборка теперь преуспевает. Конечно, нет отладочной информации, но она работает, не нарушая никаких отпечатков.

  • НЕСЧАС Коренная причина - использование компилятора/инструментов Roslyn для веб-проектов ASP.NET, и этот инструмент создает файлы PDB вместо файлов MDB, а сборка не позволяет создавать PDB файлы на платформе macOS (не использовать "платформу без поддержки".) Зная основную причину, мы также можем удалить следующие пакеты nuget из затронутых проектов:

    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" />
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
    

Непонятно, что принесено в жертву, удалив эти два пакета. Это позволяет мне создавать затронутые проекты с включенной информацией об отладке. В затронутых проектах содержались только конечные точки webapi и не использовались MVC и Razor. Было бы неплохо услышать опыт других, если у них возникли проблемы перед этим изменением.

НТН

Ответ 2

Это ошибка, которая будет исправлена ​​в ближайшее время. Тем временем вы можете отредактировать файл csproj, чтобы добавить

<DebugType Condition="'$(OS)' != 'Windows_NT'">portable</DebugType>

после строки с <DebugType>full</DebugType> или <DebugType>pdbonly</DebugType>

По сути, мы хотим, чтобы свойство DebugType на Mac было portable, которое поддерживается Roslyn csc.exe на платформах, отличных от Windows, вместо pdb.

Ответ 3

Чтобы решить эту проблему, вам нужно сделать:

  • Выберите проект

  • Щелкните правой кнопкой мыши и выберите параметры

  • Выберите вкладку Сборка → Компилятор
  • Отладочная информация → Нет

Он решил эту ошибку, но дал мне еще один

"System.IO.FileNotFoundException Не удалось найти файл" /Users/.../.../bin\roslyn\csc.exe "

Ответ 4

Я надеюсь, что не опоздаю, я сделал следующее, чтобы решить проблему:

  1. Щелкните правой кнопкой мыши в решении и выберите "Параметры",

  2. Выберите вкладку Build → Configurations,

  3. В "Конфигурации А". выберите "Отладка" и отключите все метки сборки и нажмите "принять",

  4. Очистить, перестроить и выполнить проект.

Надеюсь, это поможет.