C# – could not load type .Global

asp.netc

I'm currently working on an ASP.NET 4.0 site using a project-less solution.

By default the global.asax does not have a code-behind file, but after I changed it to

<%@ Application Language="C#" CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" %>

And created an empty Global.asax.cs with the same namespace / class name I'm getting this error at compile time

Error 1 Could not load type 'MyNamespace.Global'. C:\Projects\RiskOptix\Code\RiskOptix.WebApplication\RiskOptix.WebApp\Global.asax 1

I've already tried cleaning out my entire bin folder but to no avail – this is extremely infuriating.

Best Answer

This question has already been asked. Check out this answer. Web site projects work differently from web application projects. Website type projects do not have CodeBehind files instead have CodeFile.

<%@ Application CodeFile="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>

CodeBehind = Needs to be compiled ( asp.net 1.1 model) and compiled binary is placed in the bin folder of the website. You need to do a compile in visual studio before you deploy. Good model when you do not want the source code to be viewable as plain text ... for example when delivering to a customer who you not have obligation to provide code.

CodeFile = You provide the source file with the solution for deployment. ASP.NET 2.0 runtime compiles the code when needed. The compiled files are at Microsfot.NET[.NET version]\Temporary ASP.NET Files.