最近在公司研究js调用c#的方法头疼了好久,也找到了好几种方案,踩了无数的坑。。。于是我把踩坑经验也写出来防止二次踩坑吧!

一:关于Emscripten编译机,将c#文件编译成js文件,这是第一天研究的方案,网上的综合文档比较多,但是由于受版本以及npm(国内npm找包的坑实在太多不忍直视,我现在已经开始使用yarn。。。)的影响和限制经常会报错,最后在一篇文章中找到解决方案,文章贴出来---------------------------------------------------------

Emscripten 安装

先看看官方文档: 官方文档

看完感觉特别复杂....一脸懵逼...

再看看 ruanyifeng的文章 url

发现我的windows机器也跑不起来.
./emsdk 或者 emsdk 命令都会报错..估计是要添加什么环境变量.

↓ 下面介绍 windows系统下最简单的安装方法

安装依赖

nodejs 是必须的.

安装windows-build-toos

安装之前需要保证计算机中已经安装了 .net framework 4.5 +

使用 npm方式安装

npm install -g windows-build-tools

注意: 由于要修改系统文件,必须在 PowerShell 管理员权限下执行上面的命令.

下载 sdk

官方 SDK打开上面的网页, 下载最新版本的 sdk安装包.. .安装...搞定.

 

二:使用node-gyp模式打包

比较全的就是参考github的地址https://github.com/nodejs/node-gyp,有一点至关重要,

npm install --global windows-build-tools

这段命令最好是使用原生npm下载,不要使用cnpm,否则在最后的build阶段会出现文件缺失类似这种

electron 与调用java electron 调用c_python

详细步骤就是先


npm install -g node-gyp


然后npm install --global  windows-build-tools


npm config set python /path/to/executable/python2.7


node-gyp configure(会生成一个build文件夹)下图就是成功了


electron 与调用java electron 调用c_c#_02


node-gyp configure --msvs_version=2015(成功如下图)


electron 与调用java electron 调用c_github_03


node-gyp build(最终阶段,成功就是如下图)


electron 与调用java electron 调用c_electron 与调用java_04

但是在这样build出来的node文件在非node环境require是会报错的,比如这样

electron 与调用java electron 调用c_python_05

electron 与调用java electron 调用c_electron 与调用java_06

原因是因为node版本和electron版本不一致(这里我是要在electron主进程里面使用),所以需要替换掉之前的


node-gyp configure命令,使用


node-gyp configure rebuild --target=4.0.0 --arch=x64 --target_arch=x64 --host_arch=x64 --dist-url=https://atom.io/download/atom-shell

--target=4.0.0对应的是electron版本号(不要在cmd中看版本,直接在当前项目总查看electron版本就行),然后继续上面的build操作就OK了

electron 与调用java electron 调用c_c#_07

顺序执行