Uważaj, aby postępować zgodnie z radą zawartą w tej odpowiedzi. Chociaż rozwiązuje problem, może powodować inne problemy w późniejszym terminie.
Mam ten sam problem. Najwyraźniej kompilator .NET nie został załadowany do GAC
. Oto co zrobiłem, aby to rozwiązać:
Najpierw w konsoli menedżera pakietów wpisz:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Z jakiegoś powodu mili panowie w Microsoft zdecydowali się nie instalować go za nas w GAC. Możesz to zrobić ręcznie, otwierając wiersz polecenia programisty i wpisując:
gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"
Wniosek
Microsoft stara się zachęcić wszystkich do robienia wszystkiego z nugetami, co może być w porządku bez sporadycznych błędów, które napotykasz w systemie nuget. Spróbuj użyć tego samego projektu w różnych rozwiązaniach, przypadkowo (lub nie) zaktualizuj jeden z wielu nugetów, których używa na jednym z nich, a jeśli nie masz szczęścia, zobaczysz, co mam na myśli, próbując zbudować drugie rozwiązanie. Z drugiej strony, umieszczanie plików w GAC może również powodować problemy w przyszłości, ponieważ ludzie mają tendencję do zapominania, co tam umieścili, a następnie podczas konfigurowania nowych środowisk zapominają o dołączeniu tych plików. Innym możliwym rozwiązaniem jest umieszczenie plików w folderze centralnym dla bibliotek DLL innych firm (nawet jeśli dziwne jest nazywanie kompilatora strony trzeciej), co stwarza problemy z uszkodzonymi referencjami podczas konfigurowania nowych środowisk. Jeśli zdecydujesz się zainstalować dll na GAC, zachowaj ostrożność i pamiętaj, że to zrobiłeś. Jeśli tego nie zrobisz, pobierz ponownie nuget dla każdego projektu i ponieść wszystkie irytujące błędy, które są przez niego spowodowane (przynajmniej zdarzało się, gdy w końcu miałem tego dość i po prostu umieściłem pliki w GAC). Oba podejścia mogą przyprawiać Cię o bóle głowy i stwarzać problemy, to tylko kwestia tego, z którymi problemami wolisz sobie radzić. Microsoft zaleca korzystanie z systemu nuget i generalnie lepiej ich słuchać niż nieznanego programisty w SO, chyba że masz już dość systemu nuget i korzystałeś z GAC wystarczająco długo, aby był lepszą alternatywą dla Ciebie. pobierz nuget dla każdego projektu ponownie i ponieść wszystkie irytujące błędy przez niego spowodowane (przynajmniej zdarzało się, gdy w końcu miałem go dość i po prostu umieściłem pliki w GAC). Oba podejścia mogą przyprawiać Cię o bóle głowy i stwarzać problemy, to tylko kwestia tego, z którymi problemami wolisz sobie radzić. Microsoft zaleca korzystanie z systemu nuget i generalnie lepiej ich słuchać niż nieznanego programisty w SO, chyba że masz już dość systemu nuget i korzystałeś z GAC wystarczająco długo, aby był lepszą alternatywą dla Ciebie. pobierz nuget dla każdego projektu ponownie i ponieść wszystkie irytujące błędy przez niego spowodowane (przynajmniej zdarzało się, gdy w końcu miałem go dość i po prostu umieściłem pliki w GAC). Oba podejścia mogą przyprawiać Cię o bóle głowy i powodować problemy, to tylko kwestia tego, z którymi problemami wolisz sobie radzić. Microsoft zaleca korzystanie z systemu nuget i generalnie lepiej ich słuchać niż nieznanego programisty w SO, chyba że masz już dość systemu nuget i używałeś do czynienia z GAC wystarczająco długo, aby był on lepszą alternatywą dla Ciebie.