'System.Web.UI.WebControls.GridView' does not contain a definition for 'ItemType'

Carl_278 0 Reputation points
2024-06-19T01:32:28.64+00:00

We're using asp.net framework 4.8 and when publishing it, the aspnet_compiler.exe outputs this error multiple times:

'System.Web.UI.WebControls.GridView' does not contain a definition for 'ItemType' and no extension method 'ItemType' accepting a first argument of type 'System.Web.UI.WebControls.GridView' could be found (are you missing a using directive or an assembly reference?)

'System.Web.UI.WebControls.Repeater' does not contain a definition for 'ItemType' and no extension method 'ItemType' accepting a first argument of type 'System.Web.UI.WebControls.Repeater' could be found (are you missing a using directive or an assembly reference?)

It doesn't show these compile errors when we build each project in the solution where it is updatable. But when running aspnet_compiler.exe to make it non-updatable, that is where it shows the compile errors.

Here's an example of when aspnet_compiler.exe is run:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p obj\Release\AspnetCompileMerge\Source -c -d obj\Release\AspnetCompileMerge\TempBuildDir

Here is the version info for aspnet_compiler.exe:

aspnet_compiler.exe /? 
Microsoft (R) ASP.NET Compilation Tool version 4.8.9037.0 
Utility to precompile an ASP.NET application 
Copyright (C) Microsoft Corporation. All rights reserved. 
 
Usage: 
aspnet_compiler [-?] [-m metabasePath | -v virtualPath [-p physicalDir]] 
                [[-u] [-f] [-d] [-fixednames] targetDir] [-c] 
                [-x excludeVirtualPath [...]] 
                [[-keyfile file | -keycontainer container] 
                     [-aptca] [-delaySign]] 
                [-errorstack] 
 
-?            Prints this help text. 
-m            The full IIS metabase path of the application. This switch cannot be combined with the -v or -p switches. 
-v            The virtual path of the application to be compiled (e.g. "/MyApp"). If -p is specified, the physical path 
              is used to locate the application. Otherwise, the IIS metabase is used, and the application is assumed to 
              be in the default site (under "/LM/W3SVC/1/Root"). This switch cannot be combined with the -m switch. 
-p            The physical path of the application to be compiled. If -p is missing, the IIS metabase is used to locate 
              the app. This switch must be combined with -v. 
-u            If specified, the precompiled application is updatable. 
-f            Overwrites the target directory if it already exists. Existing contents are lost. 
-d            If specified, the debug information is emitted during compilation. 
targetDir     The physical path to which the application is compiled. If not specified, the application is precompiled 
              in-place. 
-c            If specified, the precompiled application is fully rebuilt. Any previously compiled components will be 
              re-compiled. This option is always enabled when targetDir is specified. 
-x            The virtual path of a directory that should be excluded from precompilation. This switch can be used 
              multiple times. 
-keyfile      The physical path to the strong name key file. 
-keycontainer Specifies a strong name key container. 
-aptca        If specified, the strong-name assembly will allow partially trusted callers. 
-delaysign    If specified, the assembly is not fully signed when created. 
-fixednames   If specified, the compiled assemblies will be given fixed names. 
-nologo       Suppress compiler copyright message. 
-errorstack   Shows extra debugging information that can help debug certain conditions. 
 
Examples: 
 
The following two commands are equivalent, and rely on the IIS metabase. The compiled application is deployed to 
c:\MyTarget: 
    aspnet_compiler -m /LM/W3SVC/1/Root/MyApp c:\MyTarget 
    aspnet_compiler -v /MyApp c:\MyTarget 
 
The following command compiles the application /MyApp in-place. The effect is that no more compilations will be needed 
when HTTP requests are sent to it: 
    aspnet_compiler -v /MyApp 
 
The following command does *not* rely on the IIS metabase, as it explicitly specifies the physical source directory of 
the application: 
    aspnet_compiler -v /MyApp -p c:\myapp c:\MyTarget

thank you

Internet Information Services
ASP.NET
ASP.NET
A set of technologies in the .NET Framework for building web applications and XML web services.
3,389 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Carl_278 0 Reputation points
    2024-06-20T07:43:51.46+00:00

    I have managed to find the cause of this. Our web.config had this in it:

    <httpRuntime />
    <compilation debug="false" />
    

    To fix it, I modified the web.config like this:

    <httpRuntime targetFramework="4.8" />
    <compilation debug="false" targetFramework="4.8" />
    

    That is why when you tried it, it was working for you.

    Thank you for the help, much appreciated!