添加到我的项目中的NuGet包未被引用

问题描述 投票:1回答:2

在恢复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>

那么它为什么被引用呢?我怎么能删除它?

xamarin.forms nuget-package nuget-package-restore
2个回答
3
投票

它是Xamarin.Forms.ImagePicker.iOS的依赖,Xamarin.Forms.ImagePickerprojects.assetes.json的依赖。


1
投票
  • 如果在项目文件中维护了包引用,那么只列出顶级依赖项,即您明确添加的包。
  • 现在,包可以依赖于其他包。这些包成为您的传递依赖 - 您没有明确添加的包,但现在您隐式依赖它们。
  • 大多数时候你不太关心它们,这就是为什么它们不会出现在已安装的软件包列表中,即顶级依赖项。
  • 但是,您可以查看包含传递的依赖项的所有依赖项 - 打开项目的obj目录。你会看到qazxsw poi你会看到类似的东西 qazxsw poi

在那个例子中,"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" } 是一个你明确安装的软件包,可以在你的csproj引用中看到,但它也带来了一堆自己的依赖,即Microsoft.NETCore.UniversalWindowsPlatformMicrosoft.NETCore.Platforms等。

© www.soinside.com 2019 - 2024. All rights reserved.