【问题标题】:How to push to or query local my local .NET nuget repository如何推送或查询本地我的本地 .NET nuget 存储库
【发布时间】:2025-11-22 16:05:02
【问题描述】:

我有一个创建库的 C# 项目。我用dotnet build 构建它就好了。我很想将 dll 发布到 ~/.nuget/packages(我在 Mac 上,使用 Rider)。有没有查询本地仓库的nuget命令?

在发布方面,我已经在 lib 的 csproj 文件中添加了<GeneratePackageOnBuild>true</GeneratePackageOnBuild>。还有<IsPackable>true</IsPackable>,但如果我这样做dotnet pack,则不会将任何内容放入~/.nuget/packages

【问题讨论】:

标签: c# .net-core nuget


【解决方案1】:
dotnet build
dotnet pack
nuget add path/to/<yourProjeName>.nupkg -source ~/.nuget/packages

对于 Mac,brew install nuget 是您向系统添加 Nuget 版本的方式。至少一个与 dotnet 命令中内置的 nuget 不同,该命令具有不同的语法。

然后使用 lsfindag 一个 wotnot 作为 ~/.nuget 文件位置

【讨论】:

    【解决方案2】:

    要将 NuGet 包发布到本地存储库,您可以添加以下属性。

    <PackageOutputPath>PATH_TO_YOUR_LOCAL_REPO</PackageOutputPath>
    

    注意:不要将属性添加到 csproj 文件,最好将其添加到 Directory.Build.props 并将其放在 .gitignore 中,这样您就不会意外地将这些更改应用到您的 CI有的话就建吧。

    另一种方法是通过 o 选项使用 dotnet cli pack

    dotnet pack -o PATH_TO_YOUR_LOCAL_REPO
    

    【讨论】:

    • Thx @Ibrahim,本地的通用路径是 ~/.nuget/packages 还是 ~/.nuget ?
    • @paul_h 对于 Windows,它是 %userprofile%\.nuget\packages,对于 linux/mac,它是 ~/.nuget/packages。但我建议您不要在此文件夹中发布包,因为 nuget 将缓存的已安装包保存在该文件夹中,并将包与元数据一起存储在一些特殊的文件夹结构中。为您的本地存储库选择一个不同的文件夹,例如 %userprofile%/my-nuget-repo。
    最近更新 更多