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

时间:2011-04-04 23:30:46

标签: web-config asp.net-4.0

出现此错误:

  

'compilerVersion'的值   必须提供者选项中的属性   如果你是'v4.0'或更晚   编译4.0或更高版本的   .NET Framework。编译这个   适用于3.5或3.5版的Web应用程序   早期的.NET Framework,删除   'targetFramework'属性来自   的元素   Web.config文件。

它正在开发我们的开发系统,现在我们正在使用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>

更新2:当我们删除整个部分时,我们已经过了错误。所以我的问题是,如果我们使用.NET 4.0,那么离开本节有什么问题?

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

4 个答案:

答案 0 :(得分:8)

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

你应该去你的服务器根web.config并包含整个  <system.codedom>...</system.codedom> 将内容标记为 <location path="" inheritInChildApplications="false">...</location> 标签

答案 1 :(得分:4)

答案 2 :(得分:1)

在与此争吵一段时间后,我最终使用不同的端口创建了一个新的IIS站点,并将我的ASP.Net 3.5应用程序添加到新站点,它运行良好。

答案 3 :(得分:1)

我收到了同样的错误,发现我的v4.0网站是在v2.0的默认网站下托管的。如果你有这样的设置,那么你需要从web.config中删除以下行:

<compilation defaultLanguage="c#" debug="true" targetFramework="4.0"/>

我希望有所帮助。