如何解决用.NET 4.7.2项目引用.NET Standard 2.0项目> System.IO.Ports未实现
项目A 是Windows控制台应用程序,它使用 .NET Standard 2.0 (出于兼容性考虑)并具有以下代码行
public List<string> GetListOfSerialPorts()
{
return System.IO.Ports.SerialPort.GetPortNames().Distinct().ToList();
}
本地单元测试成功运行此代码。表示,从本地单元测试调用时,它可以工作。
我现在有一个项目B (在同一解决方案中),它是一个基于 .NET 4.7.2。的Windows GUI。该项目不需要那么大的兼容性。该项目“使用”(引用)了项目A。调用了相同的函数,但从项目B中调用了该函数,当调用了完全相同的代码行时,我看到一个异常:
“ System.IO.Ports当前仅在Windows上受支持。”)。
帮助??有任何线索吗?
作为旁注,如果我尝试在Project B中实现“ SerialPort.GetPortNames()”,Visual Studio会抱怨它无法引用System.IO.Ports程序集,但是当我将其添加为对该项目的引用时,它抱怨说现在有两个(模棱两可的)对System.IO.Ports的引用(显然已经在“ System”中了)。请注意,这不是我的主要问题。我的主要问题是,从项目B调用时,项目A中的原始代码行现在失败。
请注意,我们已经安装了Microsoft.Windows.Compatibility 3.1.1。
解决方法
我通过在Project B上安装Microsoft Windows兼容性依赖项解决了我的问题,并且它起作用了。我的印象是仅在.NET Core项目中需要它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。