Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows应用商店(WinRT)应用程序中启用DocumentsLibrary功能?_C#_Windows Runtime_Windows Store Apps_Appxmanifest_Known Folders - Fatal编程技术网

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

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

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

// 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:不幸的是,我不能在注释中插入代码,这就是为什么我在这里与清单示例共享屏幕截图: