2016-11-16 22 views
10

Просто скачал Visual Studio Professional для Mac, и я не могу показаться, чтобы построить что-нибудь, как я всегда получаю ту же ошибку:CSC: ошибка CS0041: непредвиденная ошибка отладки информации об ошибке - «Операция на этой платформе не поддерживается».

/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) 

Не уверен, что изменить свой проект, чтобы получить вещи для компиляции.

+0

это, видимо, связано с производства PDB-файлы?это также поразило меня, хотя это происходит без использования «visual-studio-mac» (это проблема с xbuild, я испытываю это только в одном проекте, проекте web/asp.net, который построен на Windows отлично, и то хосты на Mac прекрасны, но не строят на mac.) –

+0

Это то, что я нашел, просто нет работы, которая работает для меня еще – Slee

+0

, также появляется nuget-packaged 'csc.exe' (Microsoft. NET) используется для компиляции вместо 'mcs' (Mono) –

ответ

10

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

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

  2. NON-HACK первопричины является использование Рослин компилятора/инструментов для веб-проектов 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. Было бы неплохо услышать опыт других людей, если бы у них были проблемы перед этим изменением.

НТН

+0

У меня такая же дилемма - я пытаюсь запустить процесс CI на MONO, и он не справляется с проблемами, связанными с компилятором Roslyn. У меня есть только чистый файл WebAPI2 (с интерфейсом Angular2). Я удалил все ссылки компилятора Roslyn и, похоже, работает, но я не совсем понимаю последствия ... – Rodney

5

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

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

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

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

+4

Просто попробовал это и получил следующую ошибку, когда построение в VS 2016 для Mac: «Ошибка CS1902: Неверная опция« Portable »для/debug; должна быть полной или pdbonly (CS1902)» – Icet

+0

Есть ли проблема connect() или аналогичная, с которой мы можем отслеживать эту ошибку, я все еще использую один из других обходных решений, упомянутых здесь, и не уверен, что/как это забито/отслеживается (то есть, как мы узнаем, когда он работает по назначению?) Спасибо! –

3

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

  1. Выбор проекта

  2. правой кнопкой мыши и выберите опции

  3. Выберите вкладку Build -> Compiler
  4. Debug информация -> None

Он решил это ROR, но дает мне еще один

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

 Смежные вопросы

  • Нет связанных вопросов^_^