C# 如何在Windows应用商店(WinRT)应用程序中启用DocumentsLibrary功能?
我刚刚在VisualStudio中创建了一个新的空白XAML/C Windows应用商店应用程序。我尝试使用以下代码在Documents文件夹中创建文件:C# 如何在Windows应用商店(WinRT)应用程序中启用DocumentsLibrary功能?,c#,windows-runtime,windows-store-apps,appxmanifest,known-folders,C#,Windows Runtime,Windows Store Apps,Appxmanifest,Known Folders,我刚刚在VisualStudio中创建了一个新的空白XAML/C Windows应用商店应用程序。我尝试使用以下代码在Documents文件夹中创建文件: // DEBUG ONLY: StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("Hey lol.txt"); 但它抛出了我所期望的异常: WinRT信息:访问指定位置文档库需要在清单中声明一个功能 这很好。我预料到了。所以我转到Package.ap
// DEBUG ONLY:
StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("Hey lol.txt");
但它抛出了我所期望的异常:
WinRT信息:访问指定位置文档库需要在清单中声明一个功能
这很好。我预料到了。所以我转到Package.appxmanifest并转到Capabilities选项卡,令我惊讶的是,没有列出DocumentsLibrary功能
如果它不存在,我如何启用它
看起来你的答案是。作者在VS2012中展示了它的可用性,但在VS2013中从列表中删除,引用了MS禁止访问该特定文件夹的策略
[尽管]此功能仅从UI中消失,但您仍然可以打开appxmanifest源代码并手动添加此功能。结果可能和以前一样——个别开发人员的认证失败,所以你最好远离这个把戏。Microsoft强烈建议不要使用文档库功能,建议改为使用文件夹和文件选择器
根据格兰特的回答,解决这一问题的方法是手动添加功能 右键单击解决方案资源管理器中的Package.appxmanifest文件,选择查看代码,然后查找Capabilities元素,或者自己添加它:
...
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="removableStorage" />
<Capability Name="documentsLibrary" />
</Capabilities>
</Package>
以下是您在尝试发布Windows应用商店时可以从中获得的信息
由于这是UAP,语法需要说明这一点,应如下所示
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="documentsLibrary" />
</Capabilities>
你需要在能力前面加上“uap:”这是他们愚蠢的决定。这严重限制了许多类型应用程序的实用性。就在我即将发布我的解决方案时,我看到了你的答案。我的解决方案是手动添加功能。谢谢@Grant。您可能不知道这个问题的答案,但如果我在Windows应用商店中以企业身份销售应用程序,我使用的是我的企业名称,是否允许我使用DocumentsLibrary功能?我是一个个人开发者,但这是一个企业,我不是以我自己的名义交易,我是以我的企业名义交易——但它不是一家公司。在澳大利亚,一家企业不一定是一家公司,除非它注册为一家公司而不是一家企业。所以我想问的是,微软是允许企业和公司使用这种功能,还是只允许公司使用这种功能?不用担心。看来我需要联系他们的支持人员。我现在还真的不想注册一家公司。这样做没有逻辑上的意义——因为当你在这里注册一家公司时,即使你没有赚钱,你也需要做税务和其他事情,而且你还必须每年更新公司名称,大约400美元。是的,我同意。尽管如此,我还是会继续开发,因为我制作的大多数应用程序最终都是我自己使用的,所以从好的方面来看,至少我可以自己使用DocsLibrary:并添加:FileTypeAssociation:.txt@KeMik我应该在清单文件中的什么位置添加它?它总是说应用程序清单验证失败。@Dominicantal:不幸的是,我不能在注释中插入代码,这就是为什么我在这里与清单示例共享屏幕截图: