C# .NET标准库能否以某种方式使用支持.NET Framework 4.6.1的nuget包
我正在将一个基于C#net461的库转换为netstandard2。库的某些依赖项最多支持net461。Visual Studio为这些依赖项显示以下警告: 警告NU1701程序包“IKVM v8.1.5717”是使用“.NETFramework,版本=v4.6.1”而不是项目目标框架“.NETStandard,版本=v2.0”还原的。此软件包可能与您的项目不完全兼容 是否存在合并这些依赖项并成功移植到netstandard2的方法C# .NET标准库能否以某种方式使用支持.NET Framework 4.6.1的nuget包,c#,.net,.net-standard,class-library,.net-standard-2.0,C#,.net,.net Standard,Class Library,.net Standard 2.0,我正在将一个基于C#net461的库转换为netstandard2。库的某些依赖项最多支持net461。Visual Studio为这些依赖项显示以下警告: 警告NU1701程序包“IKVM v8.1.5717”是使用“.NETFramework,版本=v4.6.1”而不是项目目标框架“.NETStandard,版本=v2.0”还原的。此软件包可能与您的项目不完全兼容 是否存在合并这些依赖项并成功移植到netstandard2的方法 我环顾四周,试过裸体。在将其作为进一步的依赖项添加到新的net
我环顾四周,试过裸体。在将其作为进一步的依赖项添加到新的netstandard2库项目之后,警告仍然存在,并且“bin/debug/netstadard2”处的生成输出不包含nuget依赖项的DLL。正如在尝试从另一个项目中使用库时所预期的那样,我得到了netstandard2库的net461依赖项缺少DLL的运行时异常。经过大量实验和搜索,我发现问题有两个方面:
问题#2通过确保所有导入都使用
PackageReference
样式来解决,该样式可提取可传递的依赖项。兼容性包是否足够?请查看以下内容:。您可以将多个框架作为目标并将其分配给项目组。您不能总是完成一个完整的端口,这就是警告的全部内容。该库可能依赖于本机API,例如通过使用WinForms。在这种情况下,该库将无法在其他平台(Linux、Mac等)上运行,也可能根本无法在任何平台上运行(我没有尝试过,文档也不是100%清晰)。