IOTSharp 安装开发环境
注意:请下载最新iotsharp工程,旧工程一堆BUG。。。
1、资料
博客:https://docs.iotsharp.net/blog/videos_1
视频:https://www.bilibili.com/video/BV1QV4y1A78g/?spm_id_from=888.80997.embed_other.whitelist&vd_source=89a7da8c6463934621c85e0e001ed2e2
2、环境安装
1、Visual Studio 2022安装必要组件:

2、下载并安装node-v18.16.1-x64.msi:https://nodejs.org/zh-cn/download

3、下载并安装Git、TortoiseGit以及TortoiseGit-LanguagePack
备注:官方视频里面说要安装,其实没必要,VS本身就自带GIT功能,还安装个P。。。
4、安装前端的依赖库
普通用户,打开cmd,执行下面命令:
npm config set registry https://registry.npmmirror.com

5、使用VS克隆代码
https://github.com/IoTSharp/IoTSharp.git
https://gitee.com/IoTSharp/IoTSharp.git

选择IotSharp.sln

3、源码修改
在使用RPC下发命令时,会报一些类似下面这种“_dev”等于“null”的错误,并且API接口会长时间卡死。


解决办法如下
修改1:
.\IoTSharp\Services\MQTTControllers\RpcController.cs,修改如下:
修改原因:Rpc命令下发时,会报“_dev”等于“null”的错误,导致API卡死。

修改2:
.\IoTSharp\Controllers\DevicesController.cs,修改如下:
修改原因:作者加了感叹号后,会导致RPC设备命令无法下发,这个感叹号不能加,得去掉。

4、源码编译
源码修改完之后,按照下面进行设置,我们选择mysql数据库进行启动,官方视频使用的是Sqlite数据库,早期版本Sqlite模式不能用,不过该问题,官方已经修复了。

然后配置我们的数据库地址,在IoTSharp目录下面有个appsettings.json文件,打开里面的appsettings.MySql.json,然后设置我们的数据库地址,如下:

都配置完成之后,右键“IotSharp”项目,进行重新生成


5、运行调试
点击“MySql”运行

自动生成的数据库如下:

运行成功之后,系统会启动两个控制台窗口,一个是cmd的窗口,还有一个是IOTSharp的控制台窗口


刚启动,网页会提示下面这个信息,大概意思就是当系统初始化完成之后,会自动跳转到http://localhost:8888地址,所以此时我们只需要静静的等待即可。

跳转后,注册信息如下:

注意事项:注册完之后,不能用用户名“***@iotsharp.net”登录,只能用邮箱登录,否则会出现下面这个错误提示!!

注册的用户信息在数据库“aspnetusers”表中,从数据库中可以看到,UserName字段保存的是邮箱信息,而非用户名,这坑爹的。。。

登录进去,就是下面这个样子了!!

6、额外补充
如果IOTGateway中有设备处于启动状态,并且IOTGateway程序比IOTShar优先启动,那么IOTShar在运行时,可能会报一些类似“_dev”为null的异常错误,如下:


遇到这种情况,啥也不要动,直接继续,也不要加什么null的判断,加了会导致遥测数据上不来等问题:
