VS2017中的UWP应用程序,其资产文件设置为生成内容-复制始终不会复制到LocalState文件夹

VS2017中的UWP应用程序,其资产文件设置为生成内容-复制始终不会复制到LocalState文件夹,uwp,visual-studio-2017,runtime,assets,storagefolder,Uwp,Visual Studio 2017,Runtime,Assets,Storagefolder,使用Visual Studio 2017构建UWP应用程序时,我使用“内容”的构建操作标记并为“复制到输出目录”属性设置“始终复制”的任何资产文件都将被复制到项目相应的\Bin..\Debug项目文件夹中 但是这些文件没有被复制到运行时本地\包中\如果我尝试从ApplicationData.Current.LocalFolder读取LocalState文件夹,则应用程序无法使用它们 这是VisualStudio中的错误还是我的开发环境中的错误?还是这是故意的? 如果是设计的,那么建议使用什么方法

使用Visual Studio 2017构建UWP应用程序时,我使用“内容”的构建操作标记并为“复制到输出目录”属性设置“始终复制”的任何资产文件都将被复制到项目相应的\Bin..\Debug项目文件夹中

但是这些文件没有被复制到运行时本地\包中\如果我尝试从ApplicationData.Current.LocalFolder读取LocalState文件夹,则应用程序无法使用它们

这是VisualStudio中的错误还是我的开发环境中的错误?还是这是故意的? 如果是设计的,那么建议使用什么方法分发应用程序中的文件夹,其中包含可以在运行时枚举的资产或数据文件

在过去,我使用过

StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new System.Uri("ms-appx:///assets/xxx.png")); 
需要访问一两个特定文件时使用语法,但我正在寻找一种方法来部署可能包含1到多个文件的文件文件夹,这取决于构建的目的,并且不必为每个文件将一长串文件uri硬编码到应用程序中,然后在为特殊构建更改文件时对其进行更改

复制始终不会复制到LocalState文件夹

可能您误解了“复制到输出目录”的功能,它将不会输出到本地文件夹


如果要将文件复制到localFolder,则需要手动复制。关于如何手动复制,设置为“始终复制”的文件将在安装目录中生成,您可以到相应的文件夹中查找文件,并使用
copyanc()
方法复制到本地文件夹。

进一步挖掘后,我找到了我要查找的内容

从API的角度来看,“复制到输出目录”放置文件的位置似乎被视为包的InstalledLocation。因此,与尝试枚举LocalState文件夹或其子文件夹的文件不同,有必要检索InstalledLocation文件夹并对其进行枚举,以便访问随应用程序分发的资产文件

例如:

StorageFolder installedFolder =  Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder assetsFolder = await installedFolder.GetFolderAsync("assets");
IReadOnlyList<StorageFile> pictures = await assetsFolder.GetFilesAsync();
StorageFolder installedFolder=Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder AssetFolder=Wait installedFolder.GetFolderAsync(“资产”);
IReadOnlyList pictures=await AssetFolder.getFileAsync();

将是访问资产文件夹或资产的任何其他子文件夹的方式,或者,如果您相应地调整GetFolderAsync参数,您的项目的根目录。

我仍然不清楚的一件事是,如果导航到“C:\Users\----userid---\AppData\local\Packages\----packageid----”,为什么我在文件资源管理器中的本地包文件夹的任何子目录中都看不到这些资产文件