我正在使用 NuGet 包,其中包含 2 个目标框架的程序集:net45 和 netstandard1.5
我的项目针对的是net471(因此与netstandard1.5兼容)。当我添加包时,它从 net45 文件夹复制 dll。如何强制 NuGet 使用标准文件夹中的 dll?
net45版本的问题是它需要旧版本的依赖包,标准dll没有依赖。
如何从Nuget包中选择目标框架
根据官方文件匹配项目中的程序集版本和目标框架 https://learn.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks#matching-assembly-versions-and-the-target-framework-in-a-project:
当 NuGet 安装具有多个程序集版本的包时,它
尝试将程序集的框架名称与目标相匹配
项目框架。
所以,正如马特所说:“NuGet 将使用最接近匹配的程序集。更具体的目标框架获胜。”,NuGet 会将 .net 框架程序集安装到您的 .net 框架项目中。
要解决这个问题,您可以使用 Matt 建议,自己在项目中直接引用.NET Standard程序集或者您可以手动下载该 nuget 包,将其设置为本地提要 https://learn.microsoft.com/en-us/nuget/hosting-packages/local-feeds,用NuGet Package Explorer打开它,删除文件夹net45
在下面lib
文件夹中,从本地源安装该包,然后 nuget 将使用标准文件夹中的 dll。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)