在Xamarin项目中定位.NET Framework 4.6.1

时间:2018-04-26 08:09:07

标签: c# xamarin xamarin.forms nuget

当我在Visual Studio 2017中创建一个新的Xamarin.Forms项目时,在项目属性中我无法定位除

之外的任何其他框架
  • .NET standard 1.0
  • .NET standard 1.1
  • .NET standard 1.2
  • .NET standard 1.3
  • .NET standard 1.4
  • .NET standard 1.5
  • .NET standard 1.6
  • .NET standard 2.0

我正在尝试使用针对.NET Framework 4.6.1的nuget包,因此没有加载。 当我添加该包时,我收到警告: The package CHU.Xamarin.Helpers 1.0.0.1 has been restored using '.NETFramework,Version=v4.6.1' instead of target framework of the project '.NETStandard,Version=v2.0'. The package might not be totally compatible with your project.

有没有办法在项目中定位.NET Framework 4.6.1?

如果我添加了nuget包,我有一个错误,说它与monoandroid71不兼容: The package CHU.Xamarin.Helpers 1.0.0.1 is not compatible with monoandroid71 (MonoAndroid,Version=v7.1). The package CHU.Xamarin.Helpers 1.0.0.1 handles : net (.NETFramework,Version=v0.0)

错误消息是从法语翻译的,因此可能与英语对应

不同

1 个答案:

答案 0 :(得分:0)

注意:以下问题均不能回答“如何为Xamarin.Forms项目定位.NET 框架 4.6.1”。如果您确实确实需要知道如何执行此操作,知道自己在做什么以及为什么,然后在其他位置进行搜索-这样做是一个高级主题,因此不再建议。对于跨平台项目,请坚持使用.NET Standard 版本。

在这种情况下,尽管有问题标题,但不是解决方案。继续阅读以获取更多详细信息。


  

我正在尝试使用针对.NET Framework 4.6.1的nuget程序包,因此该程序包无法加载。

实际上,它确实已加载。它会警告您。您可能会忽略 Framework Standard 警告-一年多来,我一直在忽略Framework 4.6.1 vs Standard 2.0警告,这没有问题。

  

错误..说它与monoandroid71不兼容

这是阻止您的真正问题。
是否有packages.config个文件?如果是这样,请在文本编辑器中将其打开,然后搜索monoandroid71。如果存在,那么是的,这就是问题-
packages.config机制包含一个过时的“提示”,或者您的目标是一个较旧的Android版本,该版本与您要使用的nuget不兼容-如消息所述。

可能的解决方法:

  • 定位Android 8.0或更高版本。在您的Android项目中(例如,如果您将Xamarin Forms项目命名为“ App1”,请查找标记为“ App1.Android”的项目的解决方案)/属性/应用程序/使用Android版本(目标框架)进行编译/选择Oreo或Pie。 / li>
  • 将所有nuget更新为最新版本。
  • 如果packages.config仍然提及monoandroid71,则您已经过时了“提示”。

修复project.config中过时提示的不同方法。请执行以下一项操作:

  • 右键单击“解决方案”窗格中的project.config,选择“迁移到PackageReferences”。这种更新的机制不依赖于提示。
  • 或删除project.config。再次添加小部件。
  • 或手动编辑project.config。将所有targetframework = monoandroidXX更改为相同的值-无论您在文件中找到的最高编号如何。可能是monoandroid81或monoandroid90。
  • 或从头开始。最新的VS 2017版本或VS2019。为此目的,任何一种都可以正常工作。新项目/ C#/移动应用程序Xamarin表单。将您的源文件(.cs,.xaml)复制到新项目中-不要使用旧的.csproj或package.config。目标是使用所有最新的构建选项,包括PackageReferences。