You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET发布报错CS0103:当前上下文中不存在名称“Sample”

问题根因

这个CS0103报错完全是ASP.NET两类Web项目对App_Code文件夹的编译规则差异导致的:

  • App_Code是**ASP.NET 网站项目(WSP)**的专属特殊文件夹,目录下的代码默认会在运行时动态编译,本地调试时VS内置开发服务器会自动适配这个规则,所以本地运行时调用完全正常。
  • 你当前用的是ASP.NET Web应用程序项目(WAP)——从报错路径的项目结构、aspx.cs里的partial类定义就能判断出来。这类项目发布走预编译逻辑:所有要打包的C#源码必须先被纳入项目编译清单,最终统一编译到输出的DLL文件里。但WAP项目默认不会把App_Code文件夹下的.cs文件标记为待编译源码,发布时Sample类根本没被编译进输出程序集,自然会报找不到名称的错误。
解决方案

按优先级给三个可选方案:

  • 最推荐的做法:避开特殊文件夹命名。直接把App_Code改名为普通名称,比如AppCode、Common、Utils都可以,把Sample类移过去之后重新生成发布,就能正常调用,不会再有编译规则冲突。
  • 如果一定要保留App_Code这个名字:右键点击文件夹里的Sample.cs,打开属性面板,把「生成操作」从默认的「内容」改成「编译」,保存后重新生成发布即可。
  • 如果你本来就是要用到App_Code的动态编译特性:那说明你一开始建错了项目类型,应该选「ASP.NET 空网站」模板新建项目,而不是选Web应用程序模板,网站项目原生支持App_Code的运行时编译逻辑,不会有这个问题。

内容的提问来源于stack exchange,提问作者ahmedbahadir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:24:26