nuget - 如何在 nuspec 中正确定义依赖关系
问题描述
我为 Xamarin 表单创建了一个库,我想将它作为 Nuget 包发布。有几个依赖项,在 nuspec 中我使用了以下符号
<dependencies>
<group targetFramework="netstandard1.1">
<dependency id="NETStandard.Library" version="1.6.1" />
<dependency id="Xamarin.Forms" version="2.5.0.91635" />
<dependency id="Newtonsoft.Json" version="10.0.3" />
</group>
<group targetFramework="MonoAndroid">
<dependency id="Xamarin.GooglePlayServices.Location" version="42.1021.1" />
<dependency id="Xamarin.GooglePlayServices.Places" version="42.1021.1" />
<dependency id="Xamarin.Android.Maps.Utils" version="0.5.0" />
<dependency id="Xamarin.Forms" version="2.5.0.91635" />
<dependency id="Newtonsoft.Json" version="10.0.3" />
</group>
</dependencies>
现在,当我在使用最新 Xamarin Google 库的项目中引用 nuget 包时,出现错误
Detected package version outside of dependency constraint: Xamarin.GooglePlayServices.Location 42.1021.1 requires Xamarin.GooglePlayServices.Basement (= 42.1021.1) but version Xamarin.GooglePlayServices.Basement 71.1620.0 was resolved.
引用Nuget Docs我的符号是:接受所有大于或等于 42.1021.1 的版本。那么包含 42.1021.1 和 71.1620.0 的正确表示法是什么?
解决方案
尝试在版本中添加方括号以完全限制您正在使用的版本。
<!-- Accept only version 6.1. -->
<dependency id="ExamplePackage" version="[6.1]" />
<!-- Accepts any 6.x.y version. -->
<dependency id="ExamplePackage" version="[6,7)" />
有关更多文档,请查看此处: https ://docs.microsoft.com/en-gb/nuget/concepts/package-versioning#Constraining_Upgrades_To_Allowed_Versions
推荐阅读
- python - kivy.Image 在while循环中从另一个线程运行时不更新
- sql - Azure LogicApp 无法从 SQL Server 获取 rowid
- javascript - 如何确认我的用户电子邮件以更改用户状态
- chart.js - 具有多个条形和 1 个标签的条形图
- python - 无法使用 Pandas 写入具有有效日期格式的 Excel 工作表
- bash - 浏览历史时 Bash 提示错误
- php - 在 Angular 8 中未接收到整个 JSON 有效负载
- php - 根据主标题单击子 div
- python - 打印 Python 上的额外新行
- apache-spark - pyspark Column 不可使用 withColumn 进行迭代