未将 Nuget 依赖项添加到项目中

Nuget Dependencies not being added to the project

所以最近我用 .Net Standard 2.0 替换了我的 PCL(创建了一个新的解决方案并替换了旧的)。

以前(当项目是 PCL 时)我从项目创建了一个 nuget 包并将其安装到我的 Xamarin Forms 项目中。 nuget 包会自动下载 nuspec 中列出的依赖项并将它们添加到相应项目的引用中(即正确的库将转到 android 项目或 iOS 项目)。

对于 .Net 标准共享库,这似乎不再有效,这是非常奇怪的。 Nuget 表示已成功将依赖项安装到项目中,但未将它们添加为引用。

这是 nuspec 依赖项部分

<dependencies>
                    <group targetFramework="MonoAndroid1.0">
                        <dependency id="Serilog.Sinks.Xamarin" version="0.1.29" />
                        <dependency id="Xamarin.Firebase.JobDispatcher" version="0.7.0-beta1" />
                    </group>
                    <group targetFramework="Xamarin.iOS1.0">
                        <dependency id="Serilog.Sinks.Xamarin" version="0.1.29" />
                    </group>
                    <group targetFramework=".NETStandard2.0">
                        <dependency id="Serilog" version="2.6.0" />
                        <dependency id="Serilog.Sinks.File" version="4.0.0" />
                        <dependency id="Serilog.Sinks.Console" version="3.1.1" />
                        <dependency id="Newtonsoft.Json" version="10.0.3" />
                    </group>
        </dependencies>

我的一部分想知道 .Net Standard 和 Nuget 是否存在问题,或者我是否 运行 遇到了我的目标框架的奇怪问题?

当您将 NuGet 包安装到 sdk 样式的 .NET Standard 2.0 项目中时,不会将任何引用直接添加到您的项目文件 (.csproj) 中。相反,只会添加一个 PackageReference。 NuGet 包中的程序集仍将在构建时使用,但不会直接添加到项目文件中。

NuGet 也只会为安装的包添加单个 PackageReference。与使用 packages.config 文件不同,它不会将所有依赖项添加到项目文件中,但它们将被隐式使用。

可以在 obj/project.assets.json NuGet 还原时生成的文件中找到有关已为您的项目解析了哪些程序集和依赖项的更多信息。