首页 > 解决方案 > 为什么 System.IO.Ports.SerialPort.GetPortNames() 会产生 DirectoryNotFoundException?

问题描述

只有一行:

System.IO.Ports.SerialPort.GetPortNames();

调试的时候效果很好,但是发布的版本会产生DirectoryNotFoundException:

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\dev'.
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
   at System.IO.Enumeration.FileSystemEnumerator`1.Init()
   at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
   at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at System.IO.Ports.SerialPort.GetPortNames()
   at ...

在磁盘 D 中的某处运行时,它会尝试查找D:\dev而不是C:\dev.

创建目录可以让它工作,但是为什么需要这样的目录呢?

标签: c#

解决方案


谢谢大家。在我更新了 nuget 包(System.IO.Ports)之后,问题似乎不再存在了。

我还没有找到原因,尽管我尝试将其版本改回来,但也没有重现异常。


推荐阅读