The CodeDom provider type "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider ..." could not be located

user6013886 picture user6013886 · Apr 3, 2016 · Viewed 23.7k times · Source

I published my website using visual studio publish option to my host.

my host uses asp.net 4.5.1 framework.

it works fine in local but after I published it, it gave this error.

enter image description here

my local visual studio solution folder contains a folder named packages and it contains some files is it related to error?

This is my config file(other lines omitted for the sake of clarity):

enter image description here

Thank you.

Answer

MiguelSlv picture MiguelSlv · Mar 12, 2017

The assembly version in the bin folder must match the version indicated in the compilers section of web.config file.

This error happens to me when i update the server bin folder. Because the package Microsoft.CodeDom.Providers.DotNetCompilerPlatform was updated i needed to update the compilers section of web.configtoo.

It can be done by simply updating the version attribute on the below example or replacing by entire section with the developer version.

<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>

Doesn't require IIS restart.