解决方案资源管理器窗口 -> 右击引用 -> 选择COM中的Mircosoft Script Control -> 确定。这样会将程序集MSScriptControl添加在引用中
解决方案资源管理器--〉项目目录--〉引用--〉MSScriptControl--〉属性--〉嵌入互操作类型--〉改为false
示例片段
ScriptControlClass js = new ScriptControlClass();
js.Language = "javascript";
var a = js.Eval("var w=10;var t=2; p=w/t;");
//object result = js.Run("functionA", parameters);
Console.WriteLine(a);
完整示例
using MSScriptControl;
// 运行JS脚本
public static string runJS(string filename, string funname, string[] argc)
{
/* 添加COM引用:
* Library MSScriptControl
* C:\WINDOWS\system32\msscript.ocx
* Microsoft Script Control 1.0
*/
int _paramsLen = argc.Length;
object[] _params = new object[_paramsLen];
for(int i = 0; i < _paramsLen ;i++)//参数赋值
{
_params[i] = argc[i];
}
ScriptControlClass js = new ScriptControlClass();//使用ScriptControlClass
js.Language = "javascript";
js.Reset();
string text = readFile(filename);
if (text == null) { Debug.WriteLine("读取文件失败"); return null; }
js.Eval(readFile(filename));//指向js脚本 @"JS/QQ.js"
object result = js.Run("func", _params);//传入参数执行
return result.ToString();
}