在命令行(macOS)上更新单个nuget程序包

时间:2019-06-28 14:24:43

标签: macos xamarin nuget

作为CD构建的一部分,我想获取发布到nuget feed的预发布工件,并在我们的主项目中对其进行更新。但是,我不知道如何在命令行上更新程序包。以下命令会产生以下错误:

命令

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”   没找到。确认声明中的路径是   正确,并且该文件存在于磁盘上。无法建立依存关系   项目“”的图形文件。无法添加软件包引用。

在命令行上有什么方法可以做到吗?

1 个答案:

答案 0 :(得分: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。