.NET Core是否支持指定解决方案范围的NuGet依赖版本?

时间:2017-02-18 23:50:00

标签: .net nuget .net-core dependency-management visual-studio-2017

IIRC曾经讨论过global.json将来用于指定解决方案范围的依赖版本。这个想法是,在一个包含许多解决方案和项目的仓库中,您可以通过在一个位置修改版本号来全局地抵消依赖关系。据我所知,Global.json不再存在,所以我想知道存在哪些替代方案。

例如,在项目中:

<ItemGroup>
  <PackageReference Include="Castle.Core" />
  <PackageReference Include="Microsoft.CSharp" />
  <PackageReference Include="xunit" />
</ItemGroup>

解决方案中的其他文件:

<Packages>
  <Package Name="Castle.Core" Version="4.0.0" />
  <Package Name="Microsoft.CSharp" Version="4.3.0" />
  <Package Name="xunit" Version="2.2.0-beta5-build3474" />
</Packages>

我无法在任何地方找到相关文档。我问,因为我将项目导入monorepo并且收到了数百个警告,如:

Warning     Detected package downgrade: System.IO.FileSystem from 4.3.0 to 4.0.1 

我正在寻找一些假设的原因:

  • 我想避免两个依赖项依赖于不同主要版本的情况,这些版本在运行时捕获而不是编译。
  • 我想在碰撞依赖时避免大规模的变更集。这主要用于代码审查 - 例如,如果10个文件PR需要依赖性冲突,我不希望PR被100个额外的csproj文件更改污染。
  • 我正在分发一个包含许多可执行组件的应用程序。我想要一种正确的方法来分发一组通用的依赖项,以最小化我的应用程序的文件大小。错误将是发布一个分发某个依赖项的多个版本的构建。

0 个答案:

没有答案