gpt4 book ai didi

visual-studio - 如何通过 NuGet 更新未直接作为 PackageReference 引用的依赖项?

转载 作者:行者123 更新时间:2023-12-04 21:05:46 26 4
gpt4 key购买 nike

这个问题类似于描述的一个 here .

使用“遗留”样式时 .csproj我们有单独的项目文件 packages.config列出所有依赖项的文件,包括可传递的。当安装具有依赖项的包然后决定可以手动更新哪些传递依赖项时,这将启用一个用例。所以,好处是:

  • 由于存在一个平面列表,依赖关系很容易识别
  • 对所有依赖版本的细粒度控制

  • 例如,安装后 Autofac.WebApi2.Owin来自 NuGet,我们有一张类似 this 的图片:

    清晰可见的传递依赖可以很容易地手动更新。

    使用新的 Sdk 样式时 .csproj项目 NuGet 引用添加为 <PackageReference/>到项目文件本身,MSBuild 静默引用传递依赖项:
    <Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net462</TargetFramework>
    </PropertyGroup>
    <ItemGroup>
    <PackageReference Include="Autofac.WebApi2.Owin" Version="4.0.0" />
    </ItemGroup>
    </Project>

    因此,要更新传递依赖项,必须
  • 识别它们(例如通过 obj/project.assets.json )
  • 将所有这些显式添加到项目
  • 执行更新

  • 这必须在每次更新后以及项目中的每个 (!) 传递依赖项之后完成,这显然几乎是不可能的。

    可能的解决方案:
  • 自动向项目添加可传递依赖项
  • 在 NuGet GUI 中显示可传递依赖项更新

  • 不幸的是,在文档中没有找到这样的功能。

    那么,是否有一种简单的方法可以从两个世界中获得最佳效果?

    最佳答案

    目前不可能,但可以在 Github 上进行讨论.

    关于visual-studio - 如何通过 NuGet 更新未直接作为 PackageReference 引用的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46214829/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com