As J.Dhaik https://stackoverflow.com/questions/49688230/mvvmcross-core-platform-5-7-0-was-restored-using-netframework-version-v4-6-1#answer-49692208已经提到 MvvmCross 版本 5.7.0 尚未更新以支持 .NET Standard。下一个主要版本 6.0.0 将添加对 .NET Standard 2.0 的支持。
不过,可以在 .NET Standard 类库中使用 6.0.0 之前的 MvvmCross 版本。
那么为什么会出现警告呢?
你可以看看我对此的解释堆栈溢出 https://stackoverflow.com/questions/47782611/xamarin-form-does-this-give-limitation-access-the-libraries/47854914#47854914问题是为什么您会看到警告。摘录如下
借助 .NET Standard 2.0 和 .NET Core SDK 2+ 中更新的工具
.NET 团队希望更轻松地更新或使用 .NET
标准库。问题是并非所有 NuGet 包都已
已更新以支持 .NET Standard 版本。所以他们推出了一个
针对 .NET Framework 4.6.1 的回退,几乎 100% 兼容
与 .NET 标准(.NET 标准中有一些 API
2.0 规范不在 .NET Framework 4.6.1 中,但如果需要,可以通过 NuGet 包引入)。所以你看到的警告是
通知您这些包不符合 .NET 标准版本
您正在定位,因此可能包含不属于您的 API
使用 .NET Standard 2.0 在运行时中可执行
图书馆。
如何抑制警告
NuGet 提供了两个选项,每包 or 项目级别.
每包
您可以编辑您的 csproj 并添加NoWarn="NU1701"
标记到您的包引用或选择 NuGet 包引用的属性(解决方案资源管理器 > 依赖项 > NuGet > {包名称} 右键单击属性)并添加NU1701
to the NoWarn
财产。
结果将类似于 csproj 中的以下内容
<ItemGroup>
<PackageReference Include="MvvmCross" Version="5.7.0" NoWarn="NU1701" />
<PackageReference Include="MvvmCross.Core" Version="5.7.0" NoWarn="NU1701" />
<PackageReference Include="MvvmCross.Binding" Version="5.7.0" NoWarn="NU1701" />
<PackageReference Include="MvvmCross.Platform" Version="5.7.0" NoWarn="NU1701" />
<PackageReference Include="MvvmCross.CodeAnalysis" Version="5.7.0" NoWarn="NU1701" />
</ItemGroup>
Note,使用按包方法时,不会通过抑制父包来抑制依赖包警告。因此,您需要将包作为依赖项引入,以抑制警告。
项目级别
NuGet 还为您提供了抑制所有NU1701
项目级别的警告。您可以通过手动编辑 csproj 来完成此操作,如下所示
<PropertyGroup>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>
或者通过 GUI 你可以修改Suppress warnings
包括NU1701