无法加载类型 'XXX.Global'
(Could not load type 'XXX.Global')这个问题的出现的原因以及解决方法:
问题原因可能有以下几个方面:
1. IIS虚拟目录的设置可能有误,需要确保指向正确的目录,并且检查ASP.NET版本是否设置为ASP.NET 2.0。
2. 清除bin/debug/obj目录中的文件,执行“Clean Solution”和“Build Solution”操作。
3. 在文本编辑器中检查项目文件,确保查找全局文件的路径是正确的,有时候不会更改目录。
4. 将全局文件从解决方案中移除,并在保存和关闭后重新添加。确保ASPX文件中的所有脚本标签指向正确的文件。
5. 尝试运行“Convert to Web Application”工具,重新生成所有代码和项目文件。
6. IIS Express使用错误的根目录(参考stackoverflow.com上的答案)。
解决方法:
尝试上述方法之一,并在尝试后关闭Visual Studio。希望其中之一能解决你的问题。
一些用户的回答和经验:
1. "Removing and re-adding Global.asax"对我来说起到了作用。
2. "我的Bin和Obj文件夹被排除在项目外...只需在解决方案资源管理器中点击"显示所有文件"按钮,然后右键单击并包含这些文件夹即可。谢谢。"
3. "Bin和Obj文件夹应该保持排除在项目外。"
4. "我必须删除global.asax和global.asax.cs文件,保存并关闭Visual Studio,重新打开解决方案,清理解决方案,然后构建和运行。一切都恢复正常!"
5. "检查项目中是否排除了bin文件夹。如果是,请将其包含在项目中。这对我有用。"
在这个问题中,出现了"Could not load type 'XXX.Global'"的错误。造成这个问题的原因是改变了构建配置。当将一个Web项目设置为x86时,它会将输出路径更改为bin\x86\Debug。然而,输出路径应该是bin,因此Web服务器找不到二进制文件。
解决方法是在改变构建配置后将网站的输出路径改回bin。
这可能是Stack Overflow上提供的最好的答案。单凭文字无法表达我对这个非常有帮助、措辞精确的答案的感激之情。当这个答案被读到并且以非凡的成功和真诚的解脱感应用时,欢乐的呼声在半个世界外响起。我们亲爱的导师Pieter,为您特别准备了一杯冰啤酒。愿您先生过上非常长久、非常幸福的生活。这是一次绝对了不起的贡献。真是太了不起了。谢谢。
谢谢。新西兰离我有点远,但如果我碰巧在附近,我会找你的。
我想补充一下对这个非常好的答案的祝贺。
哦,是的,我自己永远找不到这个......谢谢!
我赞同rism的评论。谢谢。
我们的问题是安装项目将主要输出指向了一个"bin"文件夹,所以它编译的dll最终在\site\bin\bin文件夹中。根本原因不同,但结果相同。奇怪的是,ProcMon或者融合日志都没有指出这个原因。