👉一、报错来源
Unity版本:Unity 2018.4.36f1。
Aspose.Words.dll版本:18.7.0.0 Targets .NET 3.5。
打包为exe文件运行后执行到Aspose.Words的相关Api时报错(编辑器运行无报错)。
👉二、报错信息
-
PlatformNotSupportedException:Operation is supported on this platform.
大概意思是,平台不支持的异常:当前平台不支持该操作。
👉三、定位错误及分析原因
通过调试Debug后,发现是执行到语句
Aspose.Words.Document doc = new Aspose.Words.Document(docPath);
时报错,无法实例化获取Document对象。
刚开始根据报错信息,我第一反应觉得可能是32位平台和64位平台的问题,于是我修改了打包时的平台架构设置,发现不管是选择x86还是x64发布,运行后都一样报错。
后来我想会不会是脚本运行平台的问题,于是我就把脚本运行平台改为.NET 4.X(原来是.NET Standard 2.0),打包运行exe测试发现居然无报错!果不其然还是脚本运行平台的问题,但是我有点纳闷的是低版本Unity里面选择.NET 2.0平台发布没发现报错呀,看来还是没把这些.net平台之间的区别搞懂呀,回头得好好研究研究。
👉四、解决方法
综上所述,高版本的Unity使用Aspose.Words.dll操作word文档时需选择的
脚本运行平台为.NET 4.X
。
如下设置:
(可在Unity界面依次点击:
File/Building Settings/Player Settings/Other Settings/Api Compatibilty Level
)