Strange Error - CS0012: The type x is defined in an assembly that is not referenced

前端 未结 7 1637
盖世英雄少女心
盖世英雄少女心 2020-12-09 15:28

The type \'x\' is defined in an assembly that is not referenced. You must add a reference to assembly \'abc123\'.

I have a .NET 2.0 web application that references m

相关标签:
7条回答
  • 2020-12-09 15:41

    When troubleshooting these types of problems, the Fusion Log Viewer has always been a great help.

    0 讨论(0)
  • 2020-12-09 15:42

    I'm Mike's coworker, and we worked out a solution.

    The type X is defined in his assembly, that is only in the GAC. Even though his ASP.NET web appplication did have a reference, it was failing to load from the GAC only for this UserControl. The rest of the application worked as expected. We confirmed the failed loading by placing a copy of the assembly in the bin directory, and everything worked. We removed the assembly, and the problem came back.

    Our solution was to manually add an entry to the web.config in the assemblies section to point ASP.NET to the GAC.

    It looks like any time you reference a type in the page (not the code-behind), you need the assembly information defined in the web.config file or in a page directive.

    <assemblies>
            <add assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[MyPublicKeyToken]"/>   
    </assemblies>
    
    0 讨论(0)
  • 2020-12-09 15:48

    For me it was a version control pull problem.

    In Visual studio, open "References" in your Solution explorer, and scroll through it.

    If anything has a yellow warning triangle on it, remember the name, remove it, and add it back again (or have ReSharper do it for you).

    Happened to me several times after pulling a project when a co-worker added a new package and references.

    0 讨论(0)
  • 2020-12-09 15:51

    There's also a bug that can manifest itself with similar symptoms, described here.

    The workaround is to delete everything in the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ directory, and it only seems to manifest itself in debug mode.

    0 讨论(0)
  • 2020-12-09 15:52

    More often than not, it is because of the cached assemblies. One way resolve this issue is by making the "strong reference" in the proj or config file. Refer this blog post

    0 讨论(0)
  • 2020-12-09 15:57

    I had the exact same error, but I had a public constructor in my class that used as a parameter, an object from another project.

    I resolved the problem by making that constructor internal.

    0 讨论(0)
提交回复
热议问题