【发布时间】:2018-12-05 13:27:57
【问题描述】:
我正在将基于 C# net461 的库转换为 netstandard2。库的一些依赖最多支持net461。 Visual Studio 对这些依赖项显示以下警告:
警告 NU1701 包“IKVM v8.1.5717”是使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETStandard,Version=v2.0”恢复的。此软件包可能与您的项目不完全兼容。
是否可以合并这些依赖项并成功移植到 netstandard2?
我环顾四周并尝试了Microsoft.Windows.Compatibility nuget。将其作为进一步的依赖项添加到新的 netstandard2 库项目后,警告仍然存在,并且“bin/debug/netstadard2”处的构建输出不包含 nuget 依赖项的 dll。正如预期的那样,在尝试使用另一个项目的库时,我得到了 netstandard2 库的 net461 依赖项缺少 DLL 的运行时异常。
【问题讨论】:
-
兼容包不够用吗?
-
看看这个:stackoverflow.com/questions/42747977/…。您可以定位多个框架并将其分配给项目组。
-
你不能总是做一个完整的端口,这就是警告的全部内容。该库可能依赖于原生 API,例如通过使用 WinForms。在这种情况下,该库将无法在其他平台(Linux、Mac 等)上运行,或者根本无法在任何平台上运行(我没有尝试过,文档也不是 100% 清楚)。
标签: c# .net .net-standard class-library .net-standard-2.0