.net 什么决定了bin文件夹中内置的程序集版本

.net 什么决定了bin文件夹中内置的程序集版本,.net,nuget,.net-assembly,.net,Nuget,.net Assembly,我直接引用了v5.0中的NuGet包x 我引用的另一个NuGet包引用了这个x包,但版本为v4.0 是什么决定了bin文件夹中内置的程序集版本?在您的情况下,程序包x的v5.0已恢复 并将匹配的目标框架库复制到应用程序的输出路径, 根据规定,, 它解析依赖关系图中最接近您的应用程序的软件包版本。 当引用与应用程序具有相同距离的不同包版本时,则该规则适用 要“查看”使用Visual Studio解析的版本,请在解决方案资源管理器中转到您的项目,然后展开依赖项包 或者,您可以使用列出项目的包引用,或

我直接引用了v5.0中的NuGet包x

我引用的另一个NuGet包引用了这个x包,但版本为v4.0

是什么决定了bin文件夹中内置的程序集版本?

在您的情况下,程序包x的v5.0已恢复 并将匹配的目标框架库复制到应用程序的输出路径, 根据规定,, 它解析依赖关系图中最接近您的应用程序的软件包版本。 当引用与应用程序具有相同距离的不同包版本时,则该规则适用

要“查看”使用Visual Studio解析的版本,请在解决方案资源管理器中转到您的项目,然后展开依赖项包
或者,您可以使用列出项目的包引用,或者使用
dotnet list package--include transitive
额外获取顶级软件包所依赖的软件包列表。

我的测试项目引用了nuget v4.0,但仍然将v5.0复制到bin文件夹,因为测试项目引用了安装了nuget v5.0的类库,并进行了直接项目引用计数不仅仅是一个直接的包参考?但这不会更接近…@HelloWorld所有
PackageReference
s都被直接和通过
ProjectReference
s放入包图中。您在评论中描述的场景与原始问题中的场景不同:现在v4.0比v5.0更接近您的应用程序,因此解决了v4.0。但这现在会导致“检测到的包降级”警告:NuGet warning。