Простое чтение файла выдает ошибку в проекте Xamarin

#c# #xamarin #xamarin.forms

#c# #xamarin #xamarin.forms

Вопрос:

В этом примере я пытаюсь заставить работать самое простое чтение файлов на c #, но это выдает мне следующие две ошибки:

Система.Исключение UnauthorizedAccessException: «Доступ к пути»D:test.txt «отказано».

Исключение типа ‘System.В системе произошло исключение UnauthorizedAccessException.Частное.CoreLib.dll но не был обработан в пользовательском коде.

Моя проблема в том, что запуск Visual Studio с правами администратора не решит мою проблему, тогда мне нужно создать из нее приложение Xamarin UWP. Моя другая проблема заключается в том, что мне придется выполнять несколько задач, с которыми у меня та же проблема. Эти задачи, например, с использованием POS-принтера.

Когда я попытался использовать код printers, который отлично работал с Windows forms, в моем коде c # в приложении Xamarin, он выдал ту же ошибку, что и при простом чтении файла.

Я уже пытался запустить Visual Studio с правами администратора, что не решило мою проблему. Я также пытался использовать

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
 

в app.manifest по-прежнему появляется та же ошибка

Код: Я знаю, что это немного, но все остальные части работают нормально до этих двух строк.

 public void testFunction()
{
  string tmpFile = File.ReadAllText(@"D:test.txt");
}
 

Часть, в которой я получил ошибку для принтера:

 PrintExtensions.Print(BytesValue, "\\DESKTOP-7LVN776\EPSON TM-T20II");
 

Это моя структура проекта. Вы можете видеть, что я не хочу использовать код за пределами UWP

Ответ №1:

Из документации:

Приложения универсальной платформы Windows (UWP) по умолчанию могут обращаться к определенным расположениям файловой системы. Приложения также могут получать доступ к дополнительным местоположениям через средство выбора файлов или путем объявления возможностей.

Таким образом, приложение UWP не может произвольно обращаться к файлам в системе, для которых у него нет разрешения. Если вы хотите, чтобы приложение имело эти дополнительные разрешения, см. Этот раздел документации.