【问题标题】:Including external folder in UWP visual studio project在 UWP Visual Studio 项目中包含外部文件夹
【发布时间】:2018-01-17 10:54:49
【问题描述】:

我在 Visual Studio (2015, c++) 中有一个 UWP 项目,我想包含一个 external 资产文件夹树(例如图像),以便当我在模拟器中运行它时,这些文件是可用(类似地,当我构建最终包时,我想要包中的文件)。文件不固定(即我可能会在以后添加/删除文件)

在常规桌面应用程序中,我只需使用构建后步骤并将文件夹上的 xcopy 复制到目标目录中。但是,这不适用于 UWP 构建。当我在模拟器中运行时,什么都没有(甚至在目标目录中)。

有没有办法添加构建步骤来复制文件(保留目录结构),或者甚至更好的方法来添加对项目的外部文件夹引用?

我知道我不是唯一这样做的人。大多数搜索结果是不相关的,其他的不是动态的,或者依赖于项目目录树中的文件。

【问题讨论】:

    标签: c++ visual-studio-2015 uwp


    【解决方案1】:

    我在 Visual Studio (2015, c++) 中有一个 UWP 项目,我想包含一个外部资产文件夹树(例如图像),以便当我在模拟器中运行它时,这些文件可用(类似地,当我构建一个最终的包我想要包中的文件)。文件不固定(即我可能会在以后添加/删除文件)

    根据您的描述,我认为您想为您的 uwp 应用安装一个外部文件夹。但是,并非所有路径都可以在当前文件访问规则下直接访问。

    Access to other locations 只能通过代理进程获得。此代理进程以用户的完全权限运行,它可以代表应用程序将这些权限用于应用程序通过功能请求的位置、用户通过文件选择器请求的位置等。 StorageItem 封装了此代理过程,因此应用程序不会不需要直接处理。

    正如 Rob 所说,您可以使用用户的完全权限访问其他位置。更多内容可以参考File access permissions官方文档。

    【讨论】:

    • 很遗憾,我的解释可能不够清楚。包含我的意思是打包时包含的项目外部文件的集合。 Sunius 的回答将我引向以下问题,这基本上是我正在寻找的(尽管不是以我希望的方式实现它的方式):stackoverflow.com/questions/28610893/…
    【解决方案2】:

    在您的 .vcxproj 文件中使用 AppxPackagePayload 元素:

    <AppxPackagePayload Include="PathToYourImage.jpg">
      <TargetPath>SubfolderInPackage\FileName.jpg</TargetPath>
    </AppxPackagePayload>
    

    很遗憾,您需要分别引用要复制的每个文件。我不知道是否有办法为目录执行此操作。

    【讨论】:

    • 不幸的是,添加单个文件将无法管理。但是,您的回答确实为我提供了一个更好的搜索向量,我发现这与我的问题非常相似(但对于 8.1 而不是 10):stackoverflow.com/questions/28610893/… 不幸的是,使用 makeappx 构建是我唯一的选择(而且我我仍然不清楚这是否可以与模拟器一起工作)。不过谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多