USQL自定义输出器调用JsonTextWriter.WriteValue编译报错:缺少System程序集引用
解决USQL自定义输出器中JsonTextWriter的System程序集引用错误
我之前在开发USQL自定义输出器时也碰到过一模一样的问题,这个错误看着有点奇怪——明明你只是调用writer.WriteValue("Test"),却提示要引用System程序集,其实根源是USQL默认的基础引用集合里没有包含System程序集,而JsonTextWriter的部分方法底层依赖了这个程序集里的类型(比如Uri相关的逻辑,哪怕你没直接用)。
下面是具体的解决步骤:
在USQL脚本中显式添加System程序集引用
在你的USQL作业脚本的最开头,添加这条语句:REFERENCE ASSEMBLY [System];这里必须用方括号把
System括起来,因为它是USQL的关键字,直接写会触发语法错误。检查自定义输出器的C#项目依赖(如果是单独编译的DLL)
如果你是把自定义输出器写在单独的C#类库项目里,还要确保这个项目已经引用了System程序集(一般默认会有,但可以检查一下项目引用或NuGet包),并且在发布时把依赖的程序集一起打包,方便USQL作业加载。
添加完引用后,重新编译你的USQL作业,那些指向WriteValue调用的错误应该就会全部消失了——因为USQL现在能找到JsonTextWriter底层需要的System程序集类型了。
内容的提问来源于stack exchange,提问作者Pratik
相关产品推荐
相关产品推荐

