MonoGame使用DPSF粒子生成器触发CS0012编译错误问题求助
解决方案
- 替换适配MonoGame的DPSF版本
你当前使用的DPSF为原版XNA适配版本,依赖微软官方XNA Framework 4.0的强签名程序集,和你项目引用的MonoGame程序集签名不匹配,即使添加了MonoGame引用也无法识别对应类型。直接替换使用社区维护的MonoGame适配版DPSF库即可解决程序集匹配问题。 - 添加程序集绑定重定向
在项目的App.config(或对应运行时配置文件)中添加如下配置,将对XNA Framework程序集的请求重定向到你项目引用的MonoGame程序集:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.Xna.Framework.Game" publicKeyToken="842cf8be1de50553" culture="neutral"/> <bindingRedirect oldVersion="4.0.0.0" newVersion="你本地MonoGame对应的程序集版本号"/> <codeBase version="你本地MonoGame对应的程序集版本号" href="你本地MonoGame.Framework.dll的路径"/> </dependentAssembly> </assemblyBinding> </runtime>
注意替换配置中对应版本号和路径为你实际使用的数值。
- 手动编译DPSF源码
下载DPSF的开源源码,将源码项目中所有XNA Framework相关引用替换为你项目使用的对应版本MonoGame引用,重新编译生成DPSF类库文件,再将新编译的dll引入到你的项目中。该方案可以保证DPSF依赖的Game类型和你项目中的类型来自同一程序集,从根源解决引用不匹配问题。 - 框架版本校验
排查你项目的目标框架版本,确保和引用的MonoGame、DPSF库的目标框架版本一致,避免出现.NET Framework与.NET Core/.NET 5+版本不兼容的情况。
内容的提问来源于stack exchange,提问作者Sisma
相关产品推荐
相关产品推荐

