【问题标题】:Update a single nuget package on the command line (macOS)在命令行上更新单个 nuget 包 (macOS)
【发布时间】:2019-06-28 14:24:43
【问题描述】:

作为 CD 构建的一部分,我想将发布到 nuget 提要的预发布工件放入我们的主项目中进行更新。但是,我不知道如何在命令行上更新包。以下命令会产生以下错误:

命令

nuget update $PROJECT -Id $PACKAGE_ID

错误:

MSBuild 自动检测:使用来自的 msbuild 版本“15.0” '/Library/Frameworks/Mono.framework/Versions/5.18.1/lib/mono/msbuild/15.0/bin'。 无法更新。该项目不包含 packages.config 文件。

命令:

dotnet add $PROJECT package $PACKAGE_ID

错误:

/Users/jeffward/Projects/(957,3):错误 MSB4019:导入的 项目 “/usr/local/share/dotnet/sdk/2.1.700/Xamarin/iOS/Xamarin.iOS.CSharp.targets” 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。无法创建依赖 项目''的图形文件。无法添加包引用。

有什么方法可以在命令行上做到这一点?

【问题讨论】:

标签: macos xamarin nuget


【解决方案1】:

从错误消息看来,您正在使用 PackageReferences。

对于稳定的 NuGet 包版本,您应该可以使用 PackageReference wildcard 执行此操作。

<PackageReference Include="Newtonsoft.Json" Version="*" />

从命令行:

msbuild /r

这应该恢复最新的 Newtonsoft.Json 版本。

如果存在现有的 obj/project.assets.json 文件,您可能需要使用“msbuild /r /p:RestoreForce=true”来强制重新运行恢复。

对于预发布版本,您需要包含向 NuGet 表明您想要预发布版本的部分版本。

<PackageReference Include="Microsoft.CSharp" Version="4.6.0-*" />

以上将恢复最新的预发布版本,目前为4.6.0-preview6.19303.8。

【讨论】:

  • 谢谢!对 PackageReference 的更改是我认为我在短期内寻找的内容,然后使用 nuget restore 进行更新。仍然会喜欢一种不需要更改参考的方式。
  • 还有一些命令行工具的工作方式与nuget update 类似,例如NuKeeper,可能值得一看。
猜你喜欢
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多