Ошибка Xamarin.Forms CS0246 «Фундамент» не найден - PullRequest
1 голос
/ 23 апреля 2020

Я создал приложение (Xamarin.forms) в Visual Studio 2017. Я хочу добавить функцию подключения Wi-Fi в мой проект iOS (используя NEHotspotConfigurationManager) и скомпилировать следующий код для Ma c:

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?)

Я проверяю 'Xamarin. iOS' в списке ссылок в проекте iOS (Modbusbutton3. iOS) с версией 0.0.0.0 введите описание изображения здесь

Однако ссылка «Xamarin. iOS» в проекте (Modbusbutton3) пуста. Я не знаю, связано ли это с моей проблемой введите описание изображения здесь

Я обнаружил, что ссылка "Xamarin. iOS" в проекте (Modbusbutton3) показала красную ошибку с «Сборка для каркаса не найдена. NET Подставка Protable (. NET Framework 4.5, Windows 8, Windows Телефон 8.1, Windows Телефон Silverlight 8)» введите описание изображения здесь

Что мне делать с этой проблемой?

1 Ответ

0 голосов
/ 25 апреля 2020

Проблема с тем, что вы пытаетесь сделать, заключается в том, что вы должны понимать, что существует разделение интересов / абстракций. На проект Core ссылаются проекты Android & iOS, но на проекты Android & iOS проект Core не ссылается. Схематически,

Core-->Android & Core-->iOS, но Core<-x-Android, Core<-x-iOS

Это сделано специально, и даже если вы можете заставить его делать то, что вы пытаетесь, вы не должны.

Мы знаем, что iOS & Android SDK очень разные. Таким образом, чтобы выполнить функцию подключения к Wi-Fi (NEHotspotConfigurationManager), вы должны выполнить различные функции ниже. И код, которым вы поделились, является правильным способом извлечения пути / имени файла ТОЛЬКО для iOS.

Для того, чтобы заставить это работать, есть также много других способов сделать это, как показано в официальных документах Microsoft здесь .

...