Electron执行C#代码遇到的坑
2018-10-28
神坑:edge环境搭建
根据网上许多教程提到的使用
npm install edge
命令即可在项目中插入edge,然后可以愉快的执行C#代码了,然而我执行之后,提示
Error: The edge module has not been pre-compiled for node.js version v10.2.0. You must build a custom version of edge.node. Please refer to https://github.com/tjanczuk/edge for building instructions.
at determineVersion (E:\椤圭洰鏂囦欢\VS鏂囦欢\VS椤圭洰\瀛︿範椤圭洰\electrons\ForNetCore\NodejsElectronApp\JpFramework.electrons\node_modules\electron-edge\lib\edge.js:18:11)
at Object.<anonymous> (E:\椤圭洰鏂囦欢\VS鏂囦欢\VS椤圭洰\瀛︿範椤圭洰\electrons\ForNetCore\NodejsElectronApp\JpFramework.electrons\node_modules\electron-edge\lib\edge.js:30:102)
at Object.<anonymous> (E:\椤圭洰鏂囦欢\VS鏂囦欢\VS椤圭洰\瀛︿範椤圭洰\electrons\ForNetCore\NodejsElectronApp\JpFramework.electrons\node_modules\electron-edge\lib\edge.js:172:3)
at Module._compile (internal/modules/cjs/loader.js:711:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:722:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:559:12)
at Function.Module._load (internal/modules/cjs/loader.js:551:3)
at Module.require (internal/modules/cjs/loader.js:658:17)
at require (internal/modules/cjs/helpers.js:20:18)
什么鬼,去搜索 electron edge,结构有什么nodejs v 7.4
,好吧,就换成 7.4试试,然而还是这个错,查看electron
版本之后发现:目前electron的自带node.dll为 10.2.0.0
,如下图
继续搜索,我就是想用 C#写electron来着 -_-!
然后发现 可以使用 npm install electron-edge
可样子这次比较靠谱,信心满满的使用命令,然后创建工程,然而,还是和上面一毛一样的问题,可以说网上这方面的资料贼JB少,没办法,正在准备放弃的时候,看到一篇文章中提到 要使用 electron-edge-js
传送门抱着半信半疑的态度,试一下吧。还原nodejs环境 为 10.2.0.0
1.创建工程
2.使用npm init
初始化程序信息
3.使用npm install --save-dev electron
添加 electron支持
4.使用npm install --save-dev electron-edge-js
添加edge electron 的兼容版本
5.创建main.js
文件,引用electron-edge-js模块
var edge = require("electron-edge-js");
6.在 main.js
中添加一下方法,
//这里有个坑,不要以为下面代码中的 /**/是注释来着。在edge中想要执行C#代码 就需要 /**/包括着
var helloWorld = edge.func(function () {/*
async (input) => {
return ".NET Welcomes " + input.ToString();
}
*/});
helloWorld('JavaScript', function (error, result) {
if (error) throw error;
console.log(result);
});
7.在控制台或者 cmd命令中 输入 electron .
查看控制台或cmd命令输出情况,前提必须切换到当前项目目录
可以说历经“坎坷”终于对 edge 描述的第一个实例搞出效果了。万事开头难,开了头后面的就自由发挥了
。再次还有感谢 雪泥鸿爪clh