Tenga cuidado de seguir los consejos de esta respuesta. Si bien resuelve el problema en cuestión, puede causar problemas diferentes en una fecha posterior.
Tengo el mismo problema. Aparentemente, el compilador .NET no se cargó en el GAC
. Lo que hice para resolverlo fue:
Primero, en la consola del administrador de paquetes, escriba:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Ahora, por alguna razón, los amables caballeros de Microsoft han decidido no instalarlo en el GAC por nosotros. Puede hacerlo manualmente abriendo el Símbolo del sistema del desarrollador y escribiendo:
gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"
Conclusión
Microsoft trata de alentar a todos a hacer todo con nugets, lo que podría estar bien sin los errores ocasionales con los que te encuentras con el sistema nuget. Intente usar el mismo proyecto en diferentes soluciones, actualice accidentalmente (o no) uno de los muchos nugets que usa en una de ellas, y si no tiene suerte, verá lo que quiero decir cuando intente construir la otra solución. Por otro lado, colocar archivos en el GAC también puede causar problemas en el futuro, ya que las personas tienden a olvidar lo que ponen allí y luego, al configurar nuevos entornos, olvidan incluir estos archivos. Otra posible solución es colocar los archivos en una carpeta central para dlls de terceros (aunque es extraño llamar al compilador como tercero), lo que crea problemas de referencias rotas al configurar nuevos entornos. Si decide instalar el dll en el GAC, Tenga cuidado y recuerde que lo hizo. Si no lo hace, descargue el nuget para cada proyecto nuevamente y cargue con todos los molestos errores causados por él (al menos solía suceder cuando finalmente me cansé de ello y simplemente coloqué los archivos en el GAC). Ambos enfoques pueden causarle dolores de cabeza y crear problemas, es solo una cuestión de qué problemas prefiere tratar. Microsoft recomienda usar el sistema nuget y, en general, es mejor escucharlos que a un programador desconocido en SO, a menos que esté completamente harto del sistema nuget y lo use para tratar con el GAC el tiempo suficiente para que sea una mejor alternativa para ti. descargue el nuget para cada proyecto nuevamente y cargue con todos los molestos errores causados por él (al menos solía suceder cuando finalmente me cansé de él y simplemente coloqué los archivos en el GAC). Ambos enfoques pueden causarle dolores de cabeza y crear problemas, es solo una cuestión de qué problemas prefiere tratar. Microsoft recomienda usar el sistema nuget y, en general, es mejor escucharlos que a un programador desconocido en SO, a menos que esté completamente harto del sistema nuget y lo use para tratar con el GAC el tiempo suficiente para que sea una mejor alternativa para ti. descargue el nuget para cada proyecto nuevamente y cargue con todos los molestos errores causados por él (al menos solía suceder cuando finalmente me cansé de él y simplemente coloqué los archivos en el GAC). Ambos enfoques pueden causarle dolores de cabeza y crear problemas, es solo una cuestión de qué problemas prefiere tratar. Microsoft recomienda usar el sistema nuget y, en general, es mejor escucharlos que a un programador desconocido en SO, a menos que esté completamente harto del sistema nuget y lo use para tratar con el GAC el tiempo suficiente para que sea una mejor alternativa para ti.