无法加载类型<mynamespace> .Global </mynamespace>

时间:2011-08-17 15:44:30

标签: c# asp.net

我目前正在使用无项目解决方案在ASP.NET 4.0站点上工作。

默认情况下,global.asax没有代码隐藏文件,但在我将其更改为

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

创建了一个空的Global.asax.cs,它具有相同的命名空间/类名,我在编译时遇到了这个错误

  

错误1无法加载“MyNamespace.Global”类型。 C:\ Projects \ RiskOptix \ Code \ RiskOptix.WebApplication \ RiskOptix.WebApp \ Global.asax 1

我已经尝试清理整个bin文件夹,但无济于事 - 这真是令人生气。

4 个答案:

答案 0 :(得分:22)

这个问题已经被问到了。查看this回答。网站项目与Web应用程序项目的工作方式不同。网站类型项目没有CodeBehind个文件,而是CodeFile

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

CodeBehind =需要编译(asp.net 1.1模型),编译后的二进制文件放在网站的bin文件夹中。在部署之前,您需要在visual studio中进行编译。当您不希望源代码可以作为纯文本查看时的良好模型...例如,当交付给您没有义务提供代码的客户时。

CodeFile =您为源文件提供部署解决方案。 ASP.NET 2.0运行时在需要时编译代码。编译的文件位于Microsfot.NET [.NET版本] \ Temporary ASP.NET Files。

答案 1 :(得分:6)

我无法运行我的MVC Web应用程序。它在Could not load type <application namespace.Classname>

中出现Global.asax错误

我转到Project Properties并将build>output文件夹设置为bin/ bin/Debug。跑了一次。它运行正常。然后再次将输出文件夹设置为bin/Debug。现在工作正常。

答案 2 :(得分:1)

只是为了加入我的2美分WTF时刻,我的这个错误的版本是由于Global.asax.cs没有包含在Visual Studio项目中引起的。

右键单击.cs文件,包含在项目中并瞧...

HTH

戴夫

答案 3 :(得分:0)

另一种解决这个问题的方法......

我在VS2010中打开了我的网络应用程序,IIS Express可以正常运行它。后来,我打开了相同的Web应用程序,但是在VS2012的新分支中,IIS Express中的虚拟目录自动神奇地更新为VS2012项目的物理目录,没有任何警告。因此,当我点击F5在我正在调试的VS2010中运行我的Web应用程序时,我在一行Import Namespace行的global.asax文件中遇到了“无法加载类型或命名空间”错误。关闭两个VS实例并重新打开VS2010版本可以解决问题。