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 работает также