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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章