Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable DocumentsLibrary capability in a Windows store (WinRT) app?

I just created a new blank XAML/C# Windows Store app in Visual Studio. I tried to create a file in the Documents folder with this code:

// DEBUG ONLY:
StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("Hey lol.txt");

But it throws this exception (which I expected):

WinRT information: Access to the specified location (DocumentsLibrary) requires a capability to be declared in the manifest.

Which is fine. I expected it. So I go to Package.appxmanifest and go to Capabilities tab, and to my surprise, there is no "DocumentsLibrary" capability listed.

How do I enable it if it's not even there?

enter image description here

like image 964
uSeRnAmEhAhAhAhAhA Avatar asked Jan 20 '14 03:01

uSeRnAmEhAhAhAhAhA


4 Answers

Looks like your answer is here. The author shows it available in VS2012, but gone from the list in VS2013, citing MS policy against accessing that particular folder.

[Although] this capability is gone just from the UI, you still can open appxmanifest source and manually add the capability. The result will probably be the same as before – failure of certification for individual developers, so you better stay away from this trick. Microsoft strongly recommend against using Documents Library capability, suggesting Folder and File Pickers instead.

like image 152
Grant Winney Avatar answered Sep 29 '22 10:09

Grant Winney


As this is UAP the syntax needs to state this, should be as followed

  <Capabilities>
    <Capability Name="internetClient" />
    <uap:Capability Name="documentsLibrary" />
  </Capabilities>

You need to add 'uap:' in front of Capability

like image 25
Reece Smith Avatar answered Sep 29 '22 12:09

Reece Smith


As per Grant's answer, a way around this is to add the Capability manually.

Right-click the Package.appxmanifest file in Solution Explorer, and select "View code", then either find the Capabilities element, or add it yourself:

...
  <Capabilities>
    <Capability Name="internetClient" />
    <Capability Name="removableStorage" />
    <Capability Name="documentsLibrary" />
  </Capabilities>
</Package>
like image 32
uSeRnAmEhAhAhAhAhA Avatar answered Sep 29 '22 10:09

uSeRnAmEhAhAhAhAhA


Here's what you'll get from the Windows Store when you try to publish it

enter image description here

like image 39
atomaras Avatar answered Sep 29 '22 12:09

atomaras