作为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” 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。无法建立依存关系 项目“”的图形文件。无法添加软件包引用。
在命令行上有什么方法可以做到吗?
答案 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。