2016-01-12 10 views
3

Я хочу получить доступ к файлам (изображениям, текстовым файлам и т. Д.) С USB-накопителя на моей малине Pi 2 с использованием ядра IoT Windows 10.Доступ запрещен при доступе к файлам USB-накопителей в ядре Windows IoT

Итак, я добавил файл appxmanifest.

При использовании этого кода в моей IBackgroundTask я получаю access denied ошибки во второй строке:

public sealed class StartupTask : IBackgroundTask 
{ 
    public async void Run(IBackgroundTaskInstance taskInstance) 
    { 
    //... 
     Windows.Storage.StorageFolder sf = Windows.Storage.KnownFolders.RemovableDevices; 
     //get list of drives 
     IReadOnlyList<Windows.Storage.StorageFolder> list = await sf.GetFoldersAsync(); 
    ... 
    } 
} 

я обнаружил, что я должен добавить fileTypeAssociation с типами файлов, я хотел бы получить доступ в Package.appxmanifest так что я сделал это:

<?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:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10" IgnorableNamespaces="uap mp iot"> 
    <Identity Name="test-uwp" Publisher="CN=user" Version="1.0.0.0" /> 
    <mp:PhoneIdentity PhoneProductId="8f31dff8-3a2b-4df1-90bb-2c5267f32980" PhonePublisherId="00000000-0000-0000-0000-000000000000" /> 
    <Properties> 
    <DisplayName>test</DisplayName> 
    <PublisherDisplayName>user</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"> 
     <uap:VisualElements DisplayName="test" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="test" BackgroundColor="transparent" AppListEntry="none"> 
     <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"> 
     </uap:DefaultTile> 
     <uap:SplashScreen Image="Assets\SplashScreen.png" /> 
     </uap:VisualElements> 
     <Extensions> 
     <Extension Category="windows.backgroundTasks" EntryPoint="test.StartupTask"> 
      <BackgroundTasks> 
      <iot:Task Type="startup" /> 
      </BackgroundTasks> 
     </Extension> 
     <uap:Extension Category="windows.fileTypeAssociation"> 
      <uap:FileTypeAssociation Name="myimages"> 
      <uap:SupportedFileTypes> 
       <uap:FileType ContentType="image/jpeg">.jpg</uap:FileType> 
      </uap:SupportedFileTypes> 
      </uap:FileTypeAssociation> 
     </uap:Extension> 
     </Extensions> 
    </Application> 
    </Applications> 
    <Capabilities> 
    <Capability Name="internetClient" /> 
    <uap:Capability Name="removableStorage" /> 
    </Capabilities> 
</Package> 

Если я хочу, чтобы развернуть, я получаю следующее сообщение об ошибке:

Severity Code Description Project File Line Suppression State Error Error : DEP0700 : Registration of the app failed. AppxManifest.xml(37,10): error 0x80070490: Cannot register the test-uwp_1.0.0.0_arm__yzekw4x8qxe1g package because the following error was encountered while parsing the windows.fileTypeAssociation Extension element: Element not found. . Try again and contact the package publisher if the problem persists. (0x80073cf6)

Как только я удаляю элемент uap: Extension, ошибка исчезает (но доступ запрещен до сих пор).

Я пропустил что-нибудь? Невозможно ли доступ к файлам с USB-накопителя с помощью фоновой службы (я хочу запустить этот безголовый без взаимодействия с пользователем)?

+0

Такая же проблема здесь для меня. Невозможно найти информацию, почему это не работает. Редактор манифеста дайте мне добавить ассоциацию, но ... – ManniAT

ответ

0

Пробовал ли это приложение на вашей «нормальной» Windows 10 Dev Machine? Возможна ли ошибка?

2

На данный момент вы не можете зарегистрировать приложение без головы, которое использует filetypeAssociation. Существует обходное решение - см. Здесь: https://github.com/ms-iot/ntvsiot/issues/62

Просто добавьте возглавляемое приложение (проект) к вашему решению (нет необходимости в каком-либо специальном коде). Добавьте ссылку на этот проект в своем безголовом приложении.

Теперь измените манифест безголового (файл asso ..) и добавьте исполняемый файл: YourHeadedApp.exe и EntryPoint: теперь ваш HeadedApp.App с последующим развертыванием EXE будет включен в развертывание - поэтому его можно найти, когда проверяется манифест.

+0

Может ли вызов фоновой задачи (безголовое приложение) открыть и открыть приложение? – Jnr

+0

Работал для меня, спасибо. Весьма полезен полный appxmanifest из фонового приложения, предоставленного munyirik (https://github.com/ms-iot/ntvsiot/issues/62#issuecomment-263392332): https://github.com/ms-iot/ ntvsiot/файлы/617448/Package.appxmanifest.txt –

 Смежные вопросы

  • Нет связанных вопросов^_^