Будьте осторожны, следуя совету этого ответа. Хотя это решает проблему под рукой, это может вызвать другие проблемы на более позднем этапе.
У меня та же проблема. Видимо компилятор .NET не был загружен в GAC
. Что я сделал, чтобы решить это было:
Сначала в консоли диспетчера пакетов введите:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Теперь по какой-то причине милые джентльмены из Microsoft решили не устанавливать его в GAC для нас. Вы можете сделать это вручную, открыв Командную строку разработчика и введя:
gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"
Вывод
Microsoft старается побудить всех делать все с помощью Nuget, что может быть хорошо без случайных ошибок, с которыми вы сталкиваетесь в системе Nuget. Попробуйте использовать один и тот же проект в разных решениях, случайно (или нет) обновить один из множества нюгетов, которые он использует для одного из них, и, если вам не повезет, вы поймете, что я имею в виду, когда попытаетесь построить другое решение. С другой стороны, размещение файлов в GAC также может вызвать проблемы в будущем, поскольку люди, как правило, забывают, что они там помещают, а затем при настройке новых сред они забывают включить эти файлы. Другое возможное решение - поместить файлы в центральную папку для сторонних библиотек DLL (даже если странно называть компилятор сторонним), что создает проблемы с неработающими ссылками при настройке новых сред. Если вы решите установить DLL в GAC, будьте осторожны и помните, что вы так и сделали. Если вы этого не сделаете, загрузите nuget для каждого проекта еще раз и несите все досадные ошибки, вызванные им (по крайней мере, раньше случалось, когда мне это надоело, и я просто помещал файлы в GAC). Оба подхода могут вызвать у вас головную боль и создать проблемы, это просто вопрос о том, какие проблемы вы предпочитаете решать. Microsoft рекомендует использовать систему nuget, и, как правило, лучше слушать их, чем неизвестного программиста в SO, если вы не устали от системы nuget и не привыкли иметь дело с GAC достаточно долго, чтобы она стала лучшей альтернативой для тебя. загрузите nuget для каждого проекта еще раз и несите все раздражающие ошибки, вызванные им (по крайней мере, раньше случалось, когда мне это надоело, и я просто помещал файлы в GAC). Оба подхода могут вызвать у вас головную боль и создать проблемы, это просто вопрос о том, какие проблемы вы предпочитаете решать. Microsoft рекомендует использовать систему nuget, и, как правило, лучше слушать их, чем неизвестного программиста в SO, если вы не устали от системы nuget и не привыкли иметь дело с GAC достаточно долго, чтобы она стала лучшей альтернативой для тебя. загрузите nuget для каждого проекта еще раз и несите все раздражающие ошибки, вызванные им (по крайней мере, раньше случалось, когда мне это надоело, и я просто помещал файлы в GAC). Оба подхода могут вызвать у вас головную боль и создать проблемы, это просто вопрос о том, какие проблемы вы предпочитаете решать. Microsoft рекомендует использовать систему nuget, и, как правило, лучше слушать их, чем неизвестного программиста в SO, если вы не устали от системы nuget и не привыкли иметь дело с GAC достаточно долго, чтобы она стала лучшей альтернативой для тебя.