我刚刚在Visual Studio中创建了一个新的空白XAML / C#Windows应用商店应用。我尝试使用以下代码在Documents文件夹中创建一个文件:
// DEBUG ONLY:
StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("Hey lol.txt");
但它抛出了这个异常(我预期):
WinRT信息:访问指定位置(DocumentsLibrary)需要在清单中声明一种功能。
哪个好。我期待它。所以我转到Package.appxmanifest
并转到Capabilities
标签,令我惊讶的是,没有列出“DocumentsLibrary”功能。
如果它不存在,我如何启用?
答案 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)
答案 3 :(得分:2)
由于这是UAP,语法需要说明这一点,应该如下
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="documentsLibrary" />
</Capabilities>
您需要在Capability
前添加'uap:'