在VB.net中调用现有C# DLL遇文件未找到异常问题求助
针对你遇到的System.IO.FileNotFoundException(找不到FTD3XX_NET.dll),按以下步骤逐一排查:
检查引用的“复制本地”设置
右键项目中的FTD3XX_NET引用,打开属性面板,确认“复制本地”选项设为True。如果是False,编译时不会将DLL复制到输出目录,运行时自然找不到。匹配平台架构
FTDI的FTD3XX系列DLL分x86和x64版本,你的项目目标平台(项目属性→生成→平台目标)必须和引用的DLL版本一致:- 若项目设为x64,必须引用x64版本的
FTD3XX_NET.dll,同时将对应x64版本的原生FTD3XX.dll复制到输出目录; - 若设为x86,对应使用x86版本的两个DLL。
- 若项目设为x64,必须引用x64版本的
确认原生依赖DLL存在
FTD3XX_NET.dll是托管包装器,依赖非原生的FTD3XX.dll。这个原生DLL必须放在程序运行目录(比如bin/Debug/net7.0),或者系统PATH环境变量包含的路径中。手动复制对应平台的FTD3XX.dll到输出目录试试。核对DLL版本
错误提示要求的版本是1.3.0.10,右键引用的FTD3XX_NET.dll查看属性,确认版本号完全匹配。版本不兼容也会触发找不到文件的错误。检查.NET框架兼容性
确认FTD3XX_NET.dll支持你当前项目的.NET版本(你用的是.NET 7)。如果该DLL是针对.NET Framework编译的,可能需要调整项目目标框架为对应版本,或者下载FTDI提供的兼容.NET Core/.NET 5+的包装器版本。手动复制DLL到输出目录
如果以上设置都正确但问题依旧,直接将FTD3XX_NET.dll和对应平台的FTD3XX.dll复制到项目的输出文件夹(比如bin/Debug/net7.0),然后重新运行程序。
另外,你的测试代码本身语法没问题,问题出在DLL的部署或配置上,按上面的步骤排查应该能解决。
内容的提问来源于stack exchange,提问作者Terry

