'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,494 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!


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.