提供程序选项中的"compilerVersion"属性必须为"v4.0"或更高版本

Nea*_*ers 11 web-config asp.net-4.0

得到此错误:

如果要编译.NET Framework 4.0或更高版本,则提供程序选项中"compilerVersion"属性的值必须为"v4.0"或更高版本.要为.NET Framework 3.5或更早版本编译此Web应用程序,请从Web.config文件的元素中删除"targetFramework"属性.

它正在开发我们的开发系统,现在我们正在使用xcopy类型部署到QA.

我们在web.config中没有"compilerVersion",targetFramework设置为"4.0".我们已经完成了IISReset.

<system.web>

        <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
Run Code Online (Sandbox Code Playgroud)

更新2:当我们删除整个部分时,我们已经过了错误.所以我的问题是,如果我们在.NET 4.0上,离开这一部分有什么问题?

我们刚刚完成了一个完整的xcopy,其中包含了Test to QA中的确切内容,而且在QA中它得到了错误而DEV却没有.所以软件和配置是相同的.为什么它可以在一台服务器而不是另一台服 IIS选项似乎完全相同.

Fab*_*ano 8

取自:http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150

您应该转到服务器根目录web.config并将整个<system.codedom>...</system.codedom> 标记内容 包含在 <location path="" inheritInChildApplications="false">...</location> 标记中


Nar*_*aen 5

这里可能的解决方案 - asp.net/whitepapers/aspnet4/writing-changes#0.1__Toc256770150

  • 上面的链接不再有效。对于那些遇到麻烦的人,请查看这篇 MS 文章:http://www.asp.net/whitepapers/aspnet4/writing-changes#0.1__Toc256770150 (5认同)
  • @尼尔。该文章适用于 4.0。看看答案。标题具有误导性。在 web.config 层次结构(应用程序级别、站点级别等)的某个位置,有一个指向 .NET 3.5 的 &lt;compiler&gt;/&lt;compiler&gt; 标记,这会混淆 Web 服务器。 (3认同)