如何在Windows商店(WinRT)应用程序中启用DocumentsLibrary功能?

时间:2014-01-20 03:49:30

标签: c# windows-runtime windows-store-apps appxmanifest known-folders

我刚刚在Visual Studio中创建了一个新的空白XAML / C#Windows应用商店应用。我尝试使用以下代码在Documents文件夹中创建一个文件:

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

但它抛出了这个异常(我预期):

  

WinRT信息:访问指定位置(DocumentsLibrary)需要在清单中声明一种功能。

哪个好。我期待它。所以我转到Package.appxmanifest并转到Capabilities标签,令我惊讶的是,没有列出“DocumentsLibrary”功能。

如果它不存在,我如何启用?

enter image description here

4 个答案:

答案 0 :(得分:6)

您的答案似乎是here。作者在VS2012中显示它,但是从VS2013的列表中删除,引用了MS策略来访问该特定文件夹。

  

[虽然]此功能仅从用户界面消失,您仍然可以打开appxmanifest源并手动添加功能。结果可能与以前相同 - 个别开发人员的认证失败,因此您最好远离这个技巧。 Microsoft强烈建议不要使用文档库功能,而是建议使用文件夹和文件选择器。

答案 1 :(得分:3)

根据Grant的回答,解决这个问题的方法是手动添加功能。

在解决方案资源管理器中右键单击Package.appxmanifest文件,然后选择“查看代码”,然后找到Capabilities元素,或者自己添加:

...
  <Capabilities>
    <Capability Name="internetClient" />
    <Capability Name="removableStorage" />
    <Capability Name="documentsLibrary" />
  </Capabilities>
</Package>

答案 2 :(得分:3)

以下是您尝试发布时从Windows应用商店获得的内容

enter image description here

答案 3 :(得分:2)

由于这是UAP,语法需要说明这一点,应该如下

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

您需要在Capability

前添加'uap:'