Ошибка добавления в Package.appxmanifest Capabilites - PullRequest
0 голосов
/ 19 марта 2019

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

Сбой добавления возможностей: <rescap:Capability Name="broadFileSystemAccess"/>

Файл Package.appxmanifest показывает ошибку, указывающую, что эта строка является недопустимым дочерним элементом.

Сбой выполнения программы с UnauthorizedAccessException

Вот манифест пакета, который не выполняется:

<?xml version="1.0" encoding="utf-8"?>
<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp rescap">

  <Identity
    Name="2eff3ebf-1a30-4bcd-8f77-d10f54e5ec80"
    Publisher="CN=JAlden"
    Version="1.0.0.0" />

  <mp:PhoneIdentity PhoneProductId="2eff3ebf-1a30-4bcd-8f77-d10f54e5ec80" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>

  <Properties>
    <DisplayName>CodeGenerator</DisplayName>
    <PublisherDisplayName>JAlden</PublisherDisplayName>
    <Logo>Assets\StoreLogo.png</Logo>
  </Properties>

  <Dependencies>
    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
  </Dependencies>

  <Resources>
    <Resource Language="x-generate"/>
  </Resources>

  <Applications>
    <Application Id="App"
      Executable="$targetnametoken$.exe"
      EntryPoint="CodeGenerator.App">
      <uap:VisualElements
        DisplayName="CodeGenerator"
        Square150x150Logo="Assets\Square150x150Logo.png"
        Square44x44Logo="Assets\Square44x44Logo.png"
        Description="CodeGenerator"
        BackgroundColor="transparent">
        <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
        <uap:SplashScreen Image="Assets\SplashScreen.png" />
      </uap:VisualElements>
    </Application>
  </Applications>

  <Capabilities>
    <Capability Name="internetClient" />
    <rescap:Capability Name="broadFileSystemAccess"/>
  </Capabilities>
</Package>

Кроме того, это приложение разрабатывается для предприятия, а не магазина приложений, и будет загружено с боковой стороны.

1 Ответ

0 голосов
/ 20 марта 2019

Как сказал magicandre1981 , возможность broadFileSystemAccess введена из build 17134 , поэтому вам необходимо убедиться, что ваш проект соответствует требованиям.

А затем вам нужно проверить 'settings -> privacy -> file system' , чтобы узнать, может ли ваше приложение получить доступ к вашей файловой системе.

enter image description here

На самом деле, документ Права доступа к файлу также упоминает эту точку.

Это ограниченная возможность.Доступ настраивается в Настройки> Конфиденциальность> Файловая система.Поскольку пользователи могут предоставлять или отклонять разрешение в любое время в Настройках, вы должны убедиться, что ваше приложение устойчиво к этим изменениям.Если вы обнаружите, что ваше приложение не имеет доступа, вы можете попросить пользователя изменить настройки, указав ссылку на статью Доступ к файловой системе Windows 10 и конфиденциальность .Обратите внимание, что пользователь должен закрыть приложение, переключить настройку и перезапустить приложение.Если они переключают параметр во время работы приложения, платформа приостановит ваше приложение, чтобы вы могли сохранить состояние, а затем принудительно прервет приложение, чтобы применить новый параметр.В обновлении за апрель 2018 года разрешение по умолчанию включено.В обновлении за октябрь 2018 года по умолчанию установлено значение Выкл.

...