在UWP visual studio项目中包含外部文件夹

时间:2017-08-09 13:47:05

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

我在Visual Studio(2015,c ++)中有一个UWP项目,我希望包含一个外部资源文件夹树(例如图像),这样当我在模拟器中运行它时,那些文件是可用(类似地,当我构建最终包时,我希望包含文件)。文件没有修复(即我可以在以后添加/删除文件)

在常规桌面应用程序中,我只需使用构建后步骤,并对目标目录中的文件夹执行xcopy操作。但是,这对UWP构建不起作用。当我在模拟器中运行时,没有任何东西(甚至在目标目录中)。

是否有某种方法可以添加构建步骤来复制文件(保留目录结构),或者更好的方法是向项目添加外部文件夹引用?

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

2 个答案:

答案 0 :(得分:1)

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

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

不幸的是,您需要单独引用要复制的每个文件。我不知道是否有办法为目录做这件事。

答案 1 :(得分:0)

  

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

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

  

Access to other locations仅可通过代理流程获得。此代理进程使用用户的完全权限运行,并且可以代表应用程序使用这些权限,用于应用程序通过功能请求的位置,用户通过文件选择器请求的位置等.StorageItem封装此经纪程序,以便应用程序不会不需要直接处理它。

正如Rob所说,您可以使用用户的完全权限访问其他位置。有关更多信息,请参阅File access permissions官方文档。