Пакеты NuGet добавлены в мой проект, на которые нет ссылок - PullRequest
1 голос
/ 18 апреля 2019

При восстановлении пакетов NuGet я вижу, что Xamarin.ios.CameraViewController восстанавливается в мой пакет и вместе с ним все его зависимости. Но я никогда не ссылался на Xamarin.ios.CameriaViewController, и это не зависимость от моих ссылочных пакетов.

Мои ссылки на csproj nuget:

<ItemGroup>
<PackageReference Include="Acr.UserDialogs">
  <Version>7.0.3</Version>
</PackageReference>
<PackageReference Include="CarouselView.FormsPlugin">
  <Version>5.2.0</Version>
</PackageReference>
<PackageReference Include="DLToolkit.Forms.Controls.FlowListView">
  <Version>2.0.11</Version>
</PackageReference>
<PackageReference Include="GMImagePicker.Xamarin">
  <Version>2.3.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.Net.Http">
  <Version>2.2.29</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
  <Version>12.0.1</Version>
</PackageReference>
<PackageReference Include="Plugin.FacebookClient">
  <Version>1.4.0</Version>
</PackageReference>
<PackageReference Include="Plugin.FileUploader">
  <Version>1.4.0</Version>
</PackageReference>
<PackageReference Include="Plugin.GoogleClient">
  <Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Remote.Linq.Newtonsoft.Json">
  <Version>5.8.2</Version>
</PackageReference>
<PackageReference Include="Rg.Plugins.Popup">
  <Version>1.1.5.188</Version>
</PackageReference>
<PackageReference Include="SQLite.Net.Async-PCL">
  <Version>3.1.1</Version>
</PackageReference>
<PackageReference Include="SQLite.Net.Core-PCL">
  <Version>3.1.1</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfAutoComplete">
  <Version>16.4.0.54</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Connectivity">
  <Version>3.2.0</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Media">
  <Version>4.0.1.5</Version>
</PackageReference>
<PackageReference Include="Xam.Plugins.Forms.ImageCircle">
  <Version>3.0.0.5</Version>
</PackageReference>
<PackageReference Include="Xam.Plugins.Messaging">
  <Version>5.2.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.Essentials">
  <Version>1.0.1</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="3.4.0.1029999" />
<PackageReference Include="System.Reflection.Emit">
  <Version>4.3.0</Version>
  <ExcludeAssets>all</ExcludeAssets>
</PackageReference>
<PackageReference Include="Xamarin.Forms.ImagePicker">
  <Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.Google.iOS.SignIn">
  <Version>4.4.0</Version>
</PackageReference>
<PackageReference Include="Xamd.Plugins.Forms.ImageCarousel">
  <Version>1.0.2</Version>
</PackageReference>
<PackageReference Include="Xfx.Controls">
  <Version>1.1.3</Version>
</PackageReference>
</ItemGroup>

Так почему на него ссылаются? как я могу удалить это?

Ответы [ 2 ]

3 голосов
/ 18 апреля 2019

Это зависимость Xamarin.Forms.ImagePicker.iOS, которая является зависимостью Xamarin.Forms.ImagePicker.

1 голос
/ 18 апреля 2019
  • с сохранением ссылок на пакеты в файле проекта, там перечислены только зависимости верхнего уровня, то есть пакеты, которые вы явно добавили.
  • Теперь пакеты могут зависеть от других пакетов.Эти пакеты становятся вашими переходными зависимостями - пакетами, которые вы не добавили явно, но теперь вы зависите от них неявно.
  • В большинстве случаев вы не слишком заботитесь о них, поэтому они не отображаются всписок установленных пакетов, т.е. зависимость верхнего уровня.
  • Однако вы можете взглянуть на все ваши зависимости, включая транзитивные, - откройте каталог obj для вашего проекта.Вы увидите projects.assetes.json Вы увидите что-то вроде

    "Microsoft.NETCore.UniversalWindowsPlatform/6.2.8": {
     "type": "package",
     "dependencies": {
       "Microsoft.NETCore.Platforms": "2.1.0",
       "Microsoft.Net.Native.Compiler": "2.2.3",
       "Microsoft.Net.UWPCoreRuntimeSdk": "2.2.8",
       "NETStandard.Library": "2.0.3"
    }
    

В этом примере Microsoft.NETCore.UniversalWindowsPlatform - это пакет, который вы установили явно и который будет отображаться в ссылках на csproj, ноон также вводит множество своих собственных зависимостей, например Microsoft.NETCore.Platforms, Microsoft.Net.Native.Compiler и т. д.

...