Visual Studio 2019 Publishing Problems in the local dev env

Incorrect compiler version injected into web.config

We had a .NET web project referencing a number of other projects contained in the same solution. The "main" web project did not have any references to Microsoft.CodeDom.Providers.DotNetCompilerPlatform while the referenced modules did - version 3.6.0. When the web project was published to the local development website the following was injected into the web projects web.config for version 2.0.0 of Microsoft.CodeDom.Providers.DotNetCompilerPlatform:

 

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs"

	type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, 

		Version=2.0.0.0, 

		Culture=neutral, 

		PublicKeyToken=31bf3856ad364e35" 

	warningLevel="4" 

	compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"

	type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, 

		Microsoft.CodeDom.Providers.DotNetCompilerPlatform, 

		Version=2.0.0.0, 

		Culture=neutral, 

		PublicKeyToken=31bf3856ad364e35" 

	warningLevel="4" 

	compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>

  

The site would not start up as it could not find assemblies related to version 2 of Microsoft.CodeDom.Providers.DotNetCompilerPlatform. 

Fix was to add a reference to the  Microsoft.CodeDom.Providers.DotNetCompilerPlatform version 3.6.0 nuget package in the web project.

We experienced a similar issue related to the Microsoft.Extensions.Configuration.Abstractions assembly - fix again was to add a reference in the web project to its nuget package in the same version as used in the other projects.

App_Config folder created as file

Occasionally the App_Config folder is created as a file which causes the deployment project to fail as it cannot copy configuration files to the folder as it is a file - why this happens I do not know but the quick solution is to delete the App_Config "file" and re-run the deployment project

 

Latest articles