Unity使用System.Data.dll报错

Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'netstandard, Version=2.0.0.0

版本不统一造成的,打开工程文件下的Assembly-CSharp.csproj,搜索System.Data,找到下面2处

// 项目中使用的System.Data.dll,你自己存放的
<Reference Include="System.Data">
        <HintPath>/Applications/UnityGame/SH Ukiyo/SH Ukiyo/Assets/Plugins/System.Data.dll</HintPath>
</Reference>

// 引擎默认读取的System.Data.dll
<Reference Include="System.Data">
        <HintPath>/Applications/Unity Releases/2021.1.19f1c1/Unity.app/Contents/NetStandard/compat/2.0.0/shims/netfx/System.Data.dll</HintPath>
</Reference>

可以看到引擎里已经自动引用了System.Data.dll,再去添加额外的引用反而会出问题,把自己添加的System.Data.dll删除即可

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`CH341DLL.dll`是一个用于CH341系列USB转串口芯片的动态链接库文件,它包含了一系列的API函数,可以帮助开发者使用CH341芯片进行USB转串口通信、GPIO控制、SPI通信、I2C通信等功能。 在使用CH341芯片进行编程开发时,需要使用到`CH341DLL.dll`文件。通常情况下,您需要从CH341芯片的官方网站或者其他可靠的来源下载并安装CH341芯片的驱动程序,然后将`CH341DLL.dll`文件复制到您的工程目录中。 在使用`CH341DLL.dll`文件时,请注意以下几点: - 确保您的操作系统已经安装了CH341芯片的驱动程序; - 您需要将`CH341DLL.dll`文件放置在Unity项目的Assets文件夹中; - 在使用API函数之前,您需要使用`DllImport`指令将函数导入到您的C#脚本中。 下面是一个使用`CH341DLL.dll`文件进行SPI通信的示例代码: ```csharp using System; using System.Runtime.InteropServices; public class CH341SPI { [DllImport("CH341DLL.dll")] private static extern int CH341OpenDevice(int iIndex); [DllImport("CH341DLL.dll")] private static extern int CH341SetStream(int iIndex, int iMode, int iBaud, int iDelay); [DllImport("CH341DLL.dll")] private static extern int CH341ReadData(int iIndex, byte[] pReadData, int iLength); [DllImport("CH341DLL.dll")] private static extern int CH341WriteData(int iIndex, byte[] pWriteData, int iLength); private int deviceHandle = -1; public CH341SPI(int index) { deviceHandle = CH341OpenDevice(index); if (deviceHandle < 0) { throw new Exception("Unable to open CH341 device!"); } int result = CH341SetStream(deviceHandle, 0x03, 500000, 0); if (result < 0) { throw new Exception("CH341 set stream error: " + result); } } public byte[] ReadSPI(int length) { byte[] data = new byte[length]; int result = CH341ReadData(deviceHandle, data, length); if (result < 0) { throw new Exception("CH341 read error: " + result); } return data; } public bool WriteSPI(byte[] data) { int result = CH341WriteData(deviceHandle, data, data.Length); if (result < 0) { throw new Exception("CH341 write error: " + result); } return true; } } ``` 在上面的代码中,我们使用`DllImport`指令将`CH341DLL.dll`文件中的函数导入到我们的C#脚本中,并使用`CH341OpenDevice`函数打开CH341芯片设备,使用`CH341SetStream`函数配置SPI通信参数,使用`CH341ReadData`函数和`CH341WriteData`函数分别进行SPI读和写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值