通过 `dotnet add package ..` 进行 NuGet 处理与通过 Visual Studio UI 添加 NuGet 的区别

问题描述 投票:0回答:1

我需要在我的库中使用本机 C 库(支持多个 Core TF 和 .NET Framework),该库是通过 NuGet 发布的。我通过 .csproj 文件和运行时文件夹进行配置,但我注意到,在某些情况下,当我通过

dotnet add package ...
使用 NuGet 时,本机库在使用后不会复制到预期文件夹中,但是当我使用 Visual Studio 时NuGet 包管理器并选择“管理解决方案的 NuGet 包”,所有文件都放置在正确的位置。

因此,我认为 NuGet 包管理器执行的步骤不仅仅是调用

dotnet add package ...
,但尚不清楚到底发生了什么。

visual-studio .net-core nuget nuget-package
1个回答
1
投票

实际上,

dotnet add package
与 NuGet 包管理器执行相同的操作:它们都将 NuGet 包安装到您的项目中。不会执行任何额外操作。

所以我认为你的项目还有其他问题。

请检查下面的提示来解决您的问题:

  1. 先清理 NuGet 缓存,或者删除

    C:\Users\xxx(current user)\.nuget\packages
    下的所有缓存文件。

  2. 如果你的项目下不存在runtimes文件夹,我认为它是由依赖资产控制的。就像

    ExcludeAssets=runtime or native
    。它将阻止运行时文件夹的功能。请参阅此官方文档

    安装完 NuGet 包后,您应该检查 .csproj 文件,并确保没有类似的内容

    <ExcludeAssets>runtime;native</ExcludeAssets>
    

    PackageReference
    节点下。

    如果该节点下有此类内容,请删除。

  3. 删除您的

    bin
    obj
    文件夹。然后重建项目以再次测试。或者,如果您使用命令行,则应该另外添加一个
    dotnet build
    命令。在我身边,我奔跑
    dotnet build -p:platform=xxx;Configuration=Release

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.