Fai attenzione a seguire il consiglio di questa risposta. Mentre risolve il problema a portata di mano, potrebbe causare problemi diversi in un secondo momento.
Ho avuto lo stesso problema. Apparentemente il compilatore .NET non è stato caricato in GAC
. Quello che ho fatto per risolverlo è stato:
Innanzitutto, nel tipo di console del gestore pacchetti:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Ora, per qualche motivo, i gentili signori di Microsoft hanno deciso di non installarlo sul GAC per noi. Puoi farlo manualmente aprendo il Prompt dei comandi per gli sviluppatori e digitando:
gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"
Conclusione
Microsoft cerca di incoraggiare tutti a fare tutto con i nuget che potrebbero andare bene senza i bug occasionali che incontri con il sistema nuget. Prova a utilizzare lo stesso progetto su soluzioni diverse, aggiorna accidentalmente (o meno) uno dei tanti nuget che utilizza su uno di essi, e se sei sfortunato vedrai cosa intendo quando provi a costruire l'altra soluzione. D'altra parte, l'inserimento di file nel GAC può anche causare problemi futuri poiché le persone tendono a dimenticare ciò che mettono lì e quindi quando creano nuovi ambienti dimenticano di includere questi file. Un'altra possibile soluzione è quella di mettere i file in una cartella centrale per DLL di terze parti (anche se è strano chiamare il compilatore di terze parti), che crea problemi di riferimenti non funzionanti durante l'impostazione di nuovi ambienti. Se decidi di installare la dll nel GAC, fai attenzione e ricorda che l'hai fatto. In caso contrario, scarica nuovamente il nuget per ciascun progetto e sopporta tutti i fastidiosi bug causati da esso (almeno accadeva quando alla fine mi sono stancato di esso e ho appena inserito i file nel GAC). Entrambi gli approcci potrebbero darti mal di testa e creare problemi, è solo una questione di quali problemi preferisci affrontare. Microsoft consiglia di utilizzare il sistema nuget e, in generale, è meglio ascoltarli piuttosto che un programmatore sconosciuto in SO, a meno che non si sia completamente stanchi del sistema nuget e si sia abituati a gestire il GAC abbastanza a lungo da essere un'alternativa migliore per te. scarica nuovamente il nuget per ogni progetto e sopporta tutti i fastidiosi bug causati da esso (almeno accadeva quando alla fine mi sono stancato di esso e ho appena inserito i file nel GAC). Entrambi gli approcci potrebbero darti mal di testa e creare problemi, è solo una questione di quali problemi preferisci affrontare. Microsoft consiglia di utilizzare il sistema nuget e, in generale, è meglio ascoltarli piuttosto che un programmatore sconosciuto in SO, a meno che non si sia completamente stanchi del sistema nuget e si sia abituati a gestire il GAC abbastanza a lungo da essere un'alternativa migliore per te. scarica nuovamente il nuget per ogni progetto e sopporta tutti i fastidiosi bug causati da esso (almeno accadeva quando alla fine mi sono stancato di esso e ho appena inserito i file nel GAC). Entrambi gli approcci potrebbero darti mal di testa e creare problemi, è solo una questione di quali problemi preferisci affrontare. Microsoft consiglia di utilizzare il sistema nuget e, in generale, è meglio ascoltarli piuttosto che un programmatore sconosciuto in SO, a meno che non si sia completamente stanchi del sistema nuget e si sia abituati a gestire il GAC abbastanza a lungo da essere un'alternativa migliore per te.