Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET标准库能否以某种方式使用支持.NET Framework 4.6.1的nuget包_C#_.net_.net Standard_Class Library_.net Standard 2.0 - Fatal编程技术网

C# .NET标准库能否以某种方式使用支持.NET Framework 4.6.1的nuget包

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

我正在将一个基于C#net461的库转换为netstandard2。库的某些依赖项最多支持net461。Visual Studio为这些依赖项显示以下警告:

警告NU1701程序包“IKVM v8.1.5717”是使用“.NETFramework,版本=v4.6.1”而不是项目目标框架“.NETStandard,版本=v2.0”还原的。此软件包可能与您的项目不完全兼容

是否存在合并这些依赖项并成功移植到netstandard2的方法


我环顾四周,试过裸体。在将其作为进一步的依赖项添加到新的netstandard2库项目之后,警告仍然存在,并且“bin/debug/netstadard2”处的生成输出不包含nuget依赖项的DLL。正如在尝试从另一个项目中使用库时所预期的那样,我得到了netstandard2库的net461依赖项缺少DLL的运行时异常。

经过大量实验和搜索,我发现问题有两个方面:

  • net461依赖项具有NetStandard2.0未涵盖的API, 这导致了运行时错误
  • 作为可传递的依赖项,net461依赖项的DLL在生成期间不包括在内
  • 在我的例子中,问题#1通过包含windows兼容性包得到了解决,其中包括我的net461依赖项使用的额外API。但由于问题2,我仍然遇到运行时异常


    问题#2通过确保所有导入都使用
    PackageReference
    样式来解决,该样式可提取可传递的依赖项。

    兼容性包是否足够?请查看以下内容:。您可以将多个框架作为目标并将其分配给项目组。您不能总是完成一个完整的端口,这就是警告的全部内容。该库可能依赖于本机API,例如通过使用WinForms。在这种情况下,该库将无法在其他平台(Linux、Mac等)上运行,也可能根本无法在任何平台上运行(我没有尝试过,文档也不是100%清晰)。