как правильно определить зависимости в nuspec - PullRequest
0 голосов
/ 22 января 2020

Я создал библиотеку для форм Xamarin и хочу опубликовать sh в виде пакета Nuget. Есть несколько зависимостей, и в nuspe c я использовал следующую запись

 <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>

Теперь, когда я ссылаюсь на пакет nuget в проекте, который использует последние библиотеки Xamarin Google, я получаю ошибку

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?

1 Ответ

0 голосов
/ 24 января 2020

Попробуйте добавить квадратные скобки к версии, чтобы полностью ограничить версию, которую вы используете.

<!-- 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

...