虽然每次打开脚本模块,都有一行注释
// Shell Module default code: using .NET Framwwork 4.6.1
但 v 友也许都清楚其实并不是它说的那样!有些 C# 6.0 的语言特性,在脚本中不可用。目前发现两个,一个是插值语法,只能用`string.format`;另一个是 out 关键字,可以声明,但调用的时候就会报错,报错信息还很奇怪。
之前我在脚本模块中引用 opencvsharp 的`Cv2.HConcat`函数,记得也是预编译没有问题,模块执行就失败了,调用一些图像形态学操作的函数是可以说明引用是正确的,这会不会和脚本模块的被阉割,或者脚本被 vm 调用的方式比较特殊,是相关的。
比如最近因为项目需要,我在脚本模块中通过 System.Data.Sqlite 程序集中的函数操纵 sqlite 数据库,在 visualstudio 设置方案为 .Netframework 4.6.1,编译运行没有问题,复制到脚本模块中却不行。我已经将需要的 dll 复制到脚本需要的目录了。后来发现有个 dll 需要放在环境变量能找到的文件夹中,才能顺利编译(
暂无回答