今天在做Unity毕业设计,是一个有客户端和服务器端的RPG游戏,可是开启服务器是报错“ECall 方法必须打包到系统模块中”
问题重现:
之前的代码是客户端直接连接数据库的,后来改为Socket连接,服务器端连接数据库,将代码拷了过去,发现XmlCtrl.Load(Application.dataPath + @"/Resources/ServerConfigure.xml");中的Application.dataPath没有引用,Application.dataPath是Unity里UnityEngine下的,添加引用和命名空间后就报错“ECall 方法必须打包到系统模块中”了,各种搜解决办法,重新安装.NET4.0也不行(压根安装不上,说我已安装或有更高版本),后来不用Application.dataPath,直接用绝对路径,问题解决!!
解决方法:
不要使用Unity下的属性或方法,比如Application.dataPath。或者此处用C#自带的路径获取方法:
Application.StartupPathApplication.ExecutablePath--获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。Environment.CurrentDirectory--获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。Application.ExecutablePath