Сегодня (без инициирования каких-либо обновлений) VisualStudio (VisualStudio для Mac Community версии 8.0.6, сборка 4) неожиданно продолжал говорить мне, что мне нужно обновить Mono (я на Mac). Я так и сделал. После этого ни один из моих проектов не скомпилируется, потому что кажется, что конфигурация испорчена, и я думаю, что RoslynTargetsPath не установлен. Я использую VisualStudio с Unity, если это что-то меняет.
Первая ошибка, которую я получил, была
"~ / Library / кэша / VisualStudio / 8,0 / MSBuild / 17745_1 // Microsoft.CSharp.Core.targets
не был найден "
Глядя на файловую систему, я увидел, что файл находится в подпапке Rosyln. Поэтому я отредактировал свой файл Assembly-CSharp.csproj и изменил определение импорта с
<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.Core.targets" />
до
<Import Project="$(MSBuildToolsPath)/Roslyn/Microsoft.CSharp.Core.targets" />
Как только я это сделал, ошибка изменилась на
"Цель" Build "не существует в проекте. (MSB4057)"
Я исследовал это и попытался добавить это в файл проекта
Ошибка вернулась к этому
"~ / Library / кэша / VisualStudio / 8,0 / MSBuild / 17745_1 // Microsoft.CSharp.Core.targets
не был найден ".
Обратите внимание на «//» в пути. Я проверил мой файл MSBuild.dll.config, и определение для RoslynTargetsPath это
<property name="RoslynTargetsPath" value="$([MSBuild]::GetToolsDirectory32())\Roslyn" />
Итак, я изменил импорт в файле моего проекта на этот
<Import Project="$(RoslynTargetsPath)/Microsoft.CSharp.Core.targets" />
И ошибка изменилась на
"/ Microsoft.CSharp.Core.targets не найден".
Похоже, что RoslynTargetsPath - пустая строка. Я не знаю, почему я был вынужден обновить Mono, когда VisualStudio не был обновлен.