打包.NET framework DLL并在.NET标准项目中使用

Package .NET framework DLL and use it in .NET standard project

我有一个供应商提供的基于 .NET Framework 的 DLL。我无权访问代码,我只有 DLL。我已经将这个 DLL 打包到一个 nuget 包中,现在我正试图将它引用到一个 .NET 标准项目中。但是我收到警告,因为 - Package 'MyPackage 0.0.1' 是使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETStandard,Version=v2.0”恢复的。此包可能与您的项目不完全兼容。

如果我将 DLL 直接引用到 .NET 标准项目中,它不会显示此警告。但是在创建 nuget 包后使用它表明。

我也尝试创建一个 .NET 标准库项目,添加 DLL 引用,然后创建一个 nuget 包,但它仍然显示相同的警告。

还有其他方法吗?供应商不提供针对其他框架的DLL,由于需要,我必须将其打包到Nuget中后才能使用它。

我这边按照你描述的情况测试。创建一个名为 test 的网络标准库项目,然后使用此节点包含到包中。

1) 创建一个名为 test 的 net standard lib nuget 项目并且仅在 test.csproj 文件下添加此节点:

<ItemGroup>
        <None Include="xxx\xxx\xxx.dll"(the whole path of the net framework dll) Pack="true" PackagePath="lib$(TargetFramework)"></None>
</ItemGroup>

2)右键点击net standard test项目-->点击Pack按钮即可获取新版本nuget 包。

将nuget包安装到另一个主项目之前,您应该first clean nuget caches或删除C:\Users\xxx(current user)\.nuget\packages.

下的所有文件

并且我没有遇到上述所有步骤的问题。