将ASP.NET MVC应用部署到GoDaddy主机后出现CS0012错误求助
针对你遇到的CS0012: The type 'System.Object' is defined in an assembly that is not referenced错误,尝试以下几种解决方案:
在web.config中手动添加程序集引用
打开项目根目录的web.config文件,找到<compilation>节点,在<assemblies>子节点中添加System.Runtime的引用:<compilation debug="true" targetFramework="4.7.2"> <assemblies> <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <!-- 其他已有的程序集引用保留 --> </assemblies> </compilation>修改后重新上传web.config到主机。
检查项目目标框架版本
确认本地项目的目标框架是GoDaddy虚拟主机支持的.NET Framework版本(通常是4.5及以上,建议用4.7.2或4.8)。如果项目目标是更高的.NET Core/.NET 5+版本,GoDaddy传统虚拟主机可能不兼容,需要调整为.NET Framework。确保bin目录包含正确的程序集
上传前检查本地项目的bin目录,确认存在System.Runtime.dll且版本为4.0.0.0。如果预编译后该文件缺失,手动从本地项目的NuGet包目录(通常在packages\System.Runtime.x.x.x\lib\net46这类路径)复制对应的dll,上传至主机的bin目录。调整GoDaddy主机的.NET版本设置
登录GoDaddy主机控制面板,找到“设置”或“应用程序设置”选项,将.NET Framework版本调整为与本地项目一致的版本,避免主机默认版本和项目版本不匹配导致的引用问题。清理并重新生成项目后上传
本地操作:右键项目 -> 选择“清理”,清理完成后右键项目 -> 选择“生成”(或“重新生成”)。然后将最新生成的bin目录、Views目录及web.config等文件重新上传至主机,覆盖原有文件。
内容的提问来源于stack exchange,提问作者eisa khan

