【问题标题】:How to enable DocumentsLibrary capability in a Windows store (WinRT) app?如何在 Windows 应用商店 (WinRT) 应用中启用 DocumentsLibrary 功能?
【发布时间】:2014-01-20 03:49:29
【问题描述】:

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

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

但它抛出了这个异常(这是我所预料的):

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

这很好。我预料到了。所以我转到Package.appxmanifest 并转到Capabilities 选项卡,令我惊讶的是,没有列出“DocumentsLibrary”功能。

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

【问题讨论】:

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


    【解决方案1】:

    看起来你的答案是here。作者显示它在 VS2012 中可用,但在 VS2013 中从列表中删除,引用 MS 政策禁止访问该特定文件夹。

    [虽然]此功能仅从 UI 中消失,您仍然可以打开 appxmanifest 源并手动添加该功能。结果可能和以前一样——个人开发者认证失败,所以你最好远离这个伎俩。 Microsoft 强烈建议不要使用文档库功能,而是建议使用文件夹和文件选择器。

    【讨论】:

    • 他们做出了一个愚蠢的决定。这严重限制了许多类型应用程序的实用性。就在我即将发布我的解决方案时,我看到了你的答案。我的解决方案是手动添加功能。谢谢@Grant。
    • 您可能不知道这个问题的答案,但如果我在 Windows 应用商店中作为企业销售应用程序(我使用的是我的企业名称),我是否可以使用 DocumentsLibrary 功能?我是一名“个人”开发人员,但这是一家企业,我不是以自己的名义进行交易,而是以我的公司名义进行交易——但它不是一家公司。在澳大利亚,企业不一定是公司,除非它注册为公司而不是企业。
    • 那么我要问的是,微软是否允许企业公司使用此功能,还是只允许公司使用?
    • 不用担心。看来我需要为此联系他们的支持人员。我现在还不想注册公司。这样做是没有逻辑意义的——因为当你在这里注册公司时,即使你不赚钱,你也需要报税和一切,而且你还必须每年更新公司名称(大约 400 美元) .
    • 是的,我同意。不过,我仍然会继续开发,因为我制作的大多数应用程序最终都是为自己使用的,所以从好的方面来说,至少我仍然可以为自己使用 DocsLibrary :)
    【解决方案2】:

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

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

    你需要在Capability前面加上'uap:'

    【讨论】:

      【解决方案3】:

      根据 Grant 的回答,解决此问题的一种方法是手动添加 Capability。

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

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

      【讨论】:

      • 并添加: FileTypeAssociation : .txt
      • @KeMik 我应该在清单文件中的哪个位置添加它?它总是说应用清单验证失败。
      • @DominikAntal:不幸的是,我无法在评论中插入代码,这就是为什么我在这里与清单示例共享屏幕截图:prntscr.com/7ex6k7
      【解决方案4】:

      当您尝试发布 Windows 应用商店时,您将获得以下内容

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        • 2013-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多