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

时间:2020-12-22 18:32:01

标签: visual-studio dll nuget .net-standard .net-framework-version

我有一个供应商提供的基于 .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 后使用。

1 个答案:

答案 0 :(得分:0)

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

1) 创建一个名为 test 的网络标准 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标准测试项目-->点击Pack按钮,即可获得新版nuget包。

enter image description here

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

并且通过上述所有步骤,我没有遇到我身边的问题。

相关问题