问题描述:为了在C#中执行js脚本,在一个目标平台编译为Any Cpu的.NET程序集中引用了MSScriptControl组件,在winform程序中,调用这个程序集中的执行js的方法,没有任何问题。但是在windows服务中调用却报错,报错信息如下:
在尝试过很多方法之后仍然没有解决,包括将MSScriptControl组件的引用属性“嵌入互操作类型”设置为false,如图所示:
这样子修改之后,报另外一个错误:
解决方案:MSScriptControl组件是32位的,所以需要将程序集的目标平台设置为X86平台,才能使用。设置如图:
以上方法虽然还有有一个小的问题就是可以保证了服务的正常启动。同时还需要你启动服务的方式也必须是 。x86 的平台。负责启动不了该服务