Xamarin.Forms错误CS0246'Foundation'找不到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin.Forms错误CS0246'Foundation'找不到相关的知识,希望对你有一定的参考价值。

我已经在Visual Studio 2017中创建了一个APP(Xamarin.forms)。我想将wifi连接功能添加到我的ios项目中(使用NEHotspotConfigurationManager)并在Mac上编译以下代码:

bool success = await UIApplication.SharedApplication.OpenUrlAsync(
NSUrl.FromString(UIApplication.OpenSettingsUrlString), options: new UIApplicationOpenUrlOptions());

var config = new NEHotspotConfiguration(ssid, password, isWep: false);
config.JoinOnce = false;
var tcs = new TaskCompletionSource<NSError>();
NEHotspotConfigurationManager.SharedManager.ApplyConfiguration(config, err => tcs.SetResult(err));
var error = await tcs.Task;
if (error != null)
{
    var alert = new UIAlertController
    {
        Title = "Error",
        Message = error.Description
    };
    alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
    PresentViewController(alert, true, null);
    return;
}

即使我右键单击红色字词时,也可以看到“添加引用'Xamarin.iOS.dll'”,但是在编译完后,仍然找不到关于Foundation,UIKit和NetworkExtension的三个错误。项目。

Error CS0246 The type or namespace name 'Foundation' could not be found (are you missing a using directive or an assembly reference?)
Error CS0246 The type or namespace name 'UIKit' could not be found (are you missing a using directive or an assembly reference?)
Error CS0246 The type or namespace name 'NetworkExtension' could not be found (are you missing a using directive or an assembly reference?)

我在版本为0.0.0.0的iOS项目(Modbusbutton3.iOS)的引用列表中检查了'Xamarin.iOS'enter image description here

但是,项目(Modbusbutton3)中的引用'Xamarin.iOS'为空。我不知道这是否与我的问题有关enter image description here

我发现项目(Modbusbutton3)中的引用'Xamarin.iOS'显示红色错误,“找不到框架.NET Protable子集(.NET Framework 4.5,Windows 8,Windows Phone 8.1,Windows Phone Silverlight 8的程序集)”enter image description here

该问题我该怎么办?

答案
您正在尝试做的事情是,您需要了解关注点/摘要是分开的。 android和iOS项目引用了Core项目,但Core项目未引用Android和iOS项目。示意性地,

Core-->Android & Core-->iOS但是Core<-x-Android, Core<-x-iOS

这是设计使然,即使您可以使其执行您尝试的操作,也不应这样做。

我们知道iOS和Android SDK非常不同。因此,为了执行wifi连接功能(NEHotspotConfigurationManager),您必须在下面执行其他功能。而且,您共享的代码是本地唯一检索路径/文件名的正确方法,仅适用于iOS。

为了使它起作用,还有许多其他方法可以执行此操作,如官方Microsoft docs here所示。

以上是关于Xamarin.Forms错误CS0246'Foundation'找不到的主要内容,如果未能解决你的问题,请参考以下文章

Assets/FollowDestination.cs(6,13): error CS0246: The type or namespace name `NavMeshAgent' could

如何恢复信息或修复 c# 错误 cs0246? [复制]

如何在 Rider 中进行 xUnit 测试?我收到错误 CS0246

在 ASP.NET vNext 中使用 Ninject 时出现编译器错误 CS0246(未找到类型或命名空间)

Unity 3D CS0246 问题 [关闭]

错误 CS0246:找不到类型或命名空间名称“Player”(您是不是缺少 using 指令或程序集引用?) Unity [关闭]