我有一个用PCL构建的Xamarin Forms应用程序。
安装NuGet包时,我会看到NuGet Explorer中安装了所有包。
Android项目示例:
Xam.Plugin.Geolocator **5.0.0.187-beta**
它可能依赖于以下NuGets:
但是,当我在.NET Standard 2.0解决方案中安装Xam.Plugin.Geolocator
时,我没有像在PCL项目中那样看到Nuget Package Explorer中的其他插件。
无论如何,Forms App工作得很好。为什么不再出现依赖包呢?我怎么知道我安装的依赖包的版本?
我已经将它们手动安装到.NET Standard项目中,但这感觉不正确...
此外,我注意到我的任何项目中都不再有Packages
个文件夹。
在我的PCL解决方案中,我可以看到依赖项。见下文:
答案 0 :(得分:2)
.NET Standard SDK样式项目应该有一个Dependencies - NuGet文件夹。 SDK样式项目没有Packages文件夹。
您可以展开Dependencies - NuGet文件夹项以查看依赖项。如果没有子节点,则没有依赖关系。
您还可以在还原NuGet包后在obj目录中创建的project.assets.json文件中查看更多详细信息。
如果要将.NET Standard.Library NuGet包安装到.NET Standard项目中,它就只有.NET Standard.Library NuGet包作为依赖项。默认情况下,在.NET Standard项目中将引用此NuGet包。当我在Visual Studio 2017中将其安装到.NET Standard 2.0项目中时,它显示没有依赖项。
从.nuspec文件中获取的完整依赖项是:
<dependencies>
<group targetFramework=".NETFramework0.0" />
<group targetFramework="Windows0.0" />
<group targetFramework="WindowsPhone0.0" />
<group targetFramework="WindowsPhoneApp0.0" />
<group targetFramework=".NETStandard1.0">
<dependency id="NETStandard.Library" version="1.6.1" />
</group>
<group targetFramework="MonoAndroid1.0">
<dependency id="Xamarin.GooglePlayServices.Location" version="60.1142.0" />
<dependency id="Plugin.Permissions" version="2.2.1" />
</group>
<group targetFramework="Xamarin.iOS1.0">
<dependency id="Plugin.Permissions" version="2.2.1" />
</group>
<group targetFramework="Xamarin.Mac2.0" />
<group targetFramework=".NETPortable0.0-Profile259" />
<group targetFramework="UAP0.0" />
<group targetFramework=".NETPlatform5.0" />
<group targetFramework="Xamarin.TVOS0.0" />
<group targetFramework="Xamarin.WatchOS0.0" />
</dependencies>
如果您尝试其他NuGet包,例如说AutoMapper,那么当您在解决方案资源管理器中展开Dependencies - NuGet - AutoMapper项时,您将依赖于它。