<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
            <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
    </configSections>
  <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
            <namespaces>
                <add namespace="System.Web.Mvc" />
                <add namespace="System.Web.Mvc.Ajax" />
                <add namespace="System.Web.Mvc.Html" />
                <add namespace="System.Web.Routing" />
                <add namespace="Umbraco.Web" />
                <add namespace="Umbraco.Core" />
                <add namespace="Umbraco.Core.Models" />
                <add namespace="Umbraco.Core.Models.PublishedContent" />
                <add namespace="Umbraco.Web.Mvc" />
                <add namespace="Examine" />
                <add namespace="Umbraco.Web.PublishedModels" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>
  <appSettings>
        <add key="webpages:Enabled" value="false" />
    </appSettings>
  <system.webServer>
        <handlers>
            <remove name="BlockViewHandler" />
            <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
        </handlers>
    </system.webServer>
  <system.web>
        <compilation targetFramework="4.7.2">
            <assemblies>
                <add assembly="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

                <!--
                    Views are compiled by the Microsoft.CodeDom.Providers.DotNetCompilerPlatform which uses the Roslyn compiler
                    from ~/bin/roslyn to expose an ICodeProvider implementation to System.CodeDom.

                    For instance, starting with package 1.4.0 (which contains version 1.2.2.0) System.Collections.Immutable
                    lists netstandard2.0 as a supported target, whereas package 1.3.1 only listed net45. So now, when
                    installing, NuGet picks the netstandard2.0 version, thus introducing a dependency to netstandard2.0.
                    
                    Somehow, transitive dependencies are not working correctly, and either (a) NuGet fails to properly
                    register this dependency, or (b) when reference assemblies are gathered before compiling views, this
                    dependency is missed. In any case, the result is that the ICodeProvider is passed a list of referenced
                    assemblies that is missing .NET Standard.

                    It may be a mix of both. NuGet registers the dependency well enough, that we can actually build the
                    whole application - but it is not doing something that is required in order to have .NET Standard
                    being a dependency when building views.

                    See also: https://stackoverflow.com/questions/50165910

                    Funny enough, the CSharpCompiler already explicitly adds System.Runtime as a referenced assembly,
                    with a comment mentioning an issue. But it's not adding .NET Standard. So, for the time being, to be sure,
                    we are adding both here.
                -->
                <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
                <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />                
            </assemblies>
        </compilation>
    </system.web>
</configuration>