Monodevelop не в состоянии построить, не может найти Microsoft.DiaSymReader.Native.x86.dll'

Я пытаюсь построить проект веб-API с помощью Monodevelop на Mac. Дело в том, что после нескольких сбоев (объяснил в вопросе, который оказался настолько грязным, что я только что удалил), я дошел до точки, чтобы получить эту ошибку

/Users/myuser/git/LiveData/LiveData/CSC: Error CS0041: Unexpected error writing debug information -- 'Windows PDB writer is not available -- could not find Microsoft.DiaSymReader.Native.x86.dll' (CS0041) (LiveData)

В Windows-машине тот же проект строится с использованием визуальной студии с таргетингом на моно 4.5.

Когда я нажимаю на ошибку, она говорит мне, что /Users/myuser/git/LiveData/LiveData/CSC не существует

Другое дело, что в структуре папок решения есть папка с пакетами (не та, что внутри проекта), а внутри этой у меня есть папка под названием Microsoft.Net.Compilers 1.3.2, которая находится внутри другой папки, называемой "tools", которая содержит среди прочего csc.exe и dll thta не может быть найден.

Я пытался установить DLL прямо в проекте с помощью Nuget, но даже если он был установлен, сборка показала мне ту же ошибку

Спасибо,

3 ответа

Что касается временного решения, вы можете просто ограничить использование Microsoft.Net.Compilers для освобождения конфигурации (отредактируйте файл *.csproj):

<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="'$(Configuration)' == 'Release' And Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

взгляните на начало условия:

'$(Configuration)' == 'Release'

Таким образом, я могу создавать и отлаживать локально и строить свой проект т.е. в апфарбор.

Сборка проекта в конфигурации выпуска должна исправить это!

Это может быть не совсем связано, но может быть полезным в некоторых отношениях. Что касается проблемы "не удалось найти Microsoft.DiaSymReader.Native.x86.dll", посмотрите на эту проблему на GitHub: https://github.com/dotnet/cli/issues/3016

Кажется, что решение является либо:

  • Зависимость от Microsoft.NETCore.Platforms, необходимых для RID графа, который отсутствовал. Любой пакет, который имеет транзитивную зависимость от него (например, NETStandard.Library), также может заставить вещи работать.
  • Добавление зависимости к "Microsoft.NETCore.Platforms": "1.0.1-" или
    "NETStandard.Library":"1.5.0-" заставить его работать.
  • добавление Microsoft.NETCore.Platforms работает также
Другие вопросы по тегам