Unity中新增DeckModel扩展方法后触发CS1061错误如何解决
问题根因
你新增的IsSpecialDeck扩展方法存放在Cynthia.Card.Common类库项目中,Unity客户端项目引用的是该类库编译后生成的dll文件,你只重新编译了类库项目,但没有将最新的dll文件同步到Unity项目中,旧版dll中只有原本就存在的IsBasicDeck方法,没有你新增的IsSpecialDeck方法,因此调用时会报CS1061错误。
解决步骤
- 确认
Cynthia.Card.Common项目编译成功无报错,找到编译输出目录(一般为项目下的bin/Debug或bin/Release目录),找到编译好的Cynthia.Card.Common.dll文件 - 打开Unity项目的
Assets/Plugins目录(如果没有可以自己创建,或者找项目中原本存放Cynthia.Card.Common.dll的位置),用新编译的dll文件覆盖替换旧版的同名文件 - 回到Unity编辑器,等待Unity自动完成资源刷新和脚本编译,之后再运行项目即可解决报错。
验证方法
如果不确定是否是dll未更新的问题,可以先把扩展方法的调用方式改成静态方法调用:
if(GwentDeck.IsSpecialDeck(_client.User.Decks.Single(x => x.Id == CurrentDeckId)))
如果修改后还是报相同的找不到方法的错误,就可以完全确认是Unity端的dll版本不对的问题。
内容的提问来源于stack exchange,提问作者Shunfan Yu
相关产品推荐
相关产品推荐

