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

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