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

7

我刚刚在Visual Studio中创建了一个新的空白XAML/C# Windows Store应用程序。我尝试使用以下代码在“文档”文件夹中创建一个文件:

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

但是它抛出了这个异常(我预料到的):
WinRT信息:访问指定位置(DocumentsLibrary)需要在清单中声明一个功能。
这很好。我已经预料到了。所以我去Package.appxmanifest并转到Capabilities选项卡,令我惊讶的是,没有列出"DocumentsLibrary"功能。
如果它甚至都不在那里,我该如何启用它呢? enter image description here
4个回答

7

看起来你的答案在这里。作者展示了它在VS2012中可用,但在VS2013中从列表中消失,引用微软政策反对访问那个特定文件夹。

[虽然]这个功能已经从UI中消失了,但你仍然可以打开appxmanifest源代码并手动添加该功能。结果可能与以前一样——个人开发者的认证失败,所以你最好远离这个技巧。微软强烈建议不要使用Documents Library功能,而是建议使用Folder和File Pickers。


1
他们做了一个愚蠢的决定。这严重限制了许多类型应用程序的实用性。就在我准备发布我的解决方案时,我看到了你的答案。我的解决方案是手动添加功能。感谢@Grant。 - uSeRnAmEhAhAhAhAhA
你可能不知道这个问题的答案,但如果我作为一个企业在Windows商店销售应用程序(我使用我的企业名称),我是否可以使用DocumentsLibrary功能?我是一个“个人”开发者,但这是一家企业,我不是以自己的名字进行交易,而是以我的企业名称进行交易 - 但它不是一家公司。在澳大利亚,除非注册为公司而不是企业,否则企业不一定是公司。 - uSeRnAmEhAhAhAhAhA
所以我的问题是,微软允许企业和公司使用这个功能吗?还是只有公司可以使用? - uSeRnAmEhAhAhAhAhA
没关系。看起来我需要联系他们的支持人员解决这个问题。我真的不想立即注册一家公司。这样做毫无逻辑意义——因为在这里注册一家公司,即使你没有赚钱,也需要缴税和其他费用,而且每年还需要更新公司名称(大约需要400美元)。 - uSeRnAmEhAhAhAhAhA
1
是的,我同意。不过我还是会继续开发,因为我制作的大多数应用程序最终都会自己使用,所以从好的方面来看,至少我仍然可以为自己使用DocsLibrary :) - uSeRnAmEhAhAhAhAhA

4
作为UAP,语法需要声明这一点,应如下所示。
  <Capabilities>
    <Capability Name="internetClient" />
    <uap:Capability Name="documentsLibrary" />
  </Capabilities>

您需要在“Capability”前面添加“uap:”


3
根据Grant的答案,解决这个问题的方法是手动添加能力。
在解决方案资源管理器中右键单击Package.appxmanifest文件,选择“查看代码”,然后找到能力元素或自己添加它。
...
  <Capabilities>
    <Capability Name="internetClient" />
    <Capability Name="removableStorage" />
    <Capability Name="documentsLibrary" />
  </Capabilities>
</Package>

4
FileTypeAssociation: <Extension Category="windows.fileTypeAssociation"> <FileTypeAssociation Name="txt"> <SupportedFileTypes> <FileType>.txt</FileType> </SupportedFileTypes> </FileTypeAssociation> - R.Titov
1
@KeMik 我应该在清单文件的哪个位置添加这个?它总是显示应用程序清单验证失败。 - Dominik Antal
2
@DominikAntal:不幸的是,我无法在评论中插入代码,这就是为什么我在这里分享了清单示例的截图:http://prntscr.com/7ex6k7 - R.Titov

3
以下是您在尝试发布时从Windows Store获得的内容:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接