【问题标题】:What is the AppX folder?什么是 AppX 文件夹?
【发布时间】:2017-02-20 02:51:41
【问题描述】:

当我的 UWP 应用构建时,它会进入当前项目的输出路径。在其中,总是有一个名为“AppX”的附加文件夹,其中包含所有内容的副本。

当从商店安装同一个应用程序时,没有与之关联的 AppX 文件夹。

开发的时候为什么会有这个无用的重复数据文件夹?

【问题讨论】:

  • 当您从商店下载应用程序时,该文件夹也存在。它隐藏得很好,c:\program files\windowsapps。存储 appx 包的内容,以便程序可以运行。这不是没用的。
  • 不,只有一份应用程序副本,它是资产和内容。 WindowsApps 目录中没有已安装应用的 AppX 文件夹。

标签: uwp windows-10-universal monogame


【解决方案1】:

在 Visual Studio 2015 Update 3 中,我们为开发人员添加了选项,以指定其 UWP 应用的布局路径。这决定了当你构建你的应用程序时包布局被复制到磁盘上的哪个位置。默认情况下,此属性是相对于项目的根目录设置的。如果不修改此属性,则行为将保持与以前版本的 Visual Studio 相同。

来自MSDN 来源。

部署和调试时会生成此文件夹。它实际上是您的应用程序的调试安装位置路径。您可以使用Package.Current.InstalledLocation.Path 进行测试。调试应用的安装位置如下:

D:\App170221\AppPackage\bin\x86\Debug\AppX

【讨论】:

  • 这只是颠倒了我的问题。那为什么调试目录中有重复数据呢?为什么我的应用程序有两个副本?使用 Package.Current.InstalledLocation.Path 确实指向 AppX,但我也可以只使用 File.Exists() 并冒险寻找错误的地方,因为有两个。
  • @Jarryd 正如我所说,这只是应用程序的调试安装位置路径。如果您从 Windows 商店查看已安装的应用程序,您会发现它们已安装在 C:\Users\...\AppData\Local\Packages 中,但在 Visual Studio 中调试时,该应用程序不会安装在那里。这就是为什么 AppX 文件夹存在于 Debug 目录中的原因。关于File.Exists()方法,由于uwp应用程序运行在沙箱中,所以如果你这样称呼它File.Exists(@"D:\text.txt"),无论文件是否存在,它总是返回false。在 UWP 中,我们应该使用 Windows​.Storage API 来进行文件操作。谢谢。
  • 那么 AppX 就是一个安装文件夹。 app打包提交时,是否涉及到AppX文件夹?而我们使用File.Exists只在app的范围内,所以保存目录和app目录在ApplicationData.Current.LocalFolder。您是说这将在开发过程中起作用,但在商店中失败?
  • is the AppX folder involved? 没有。Are you saying this will work during development, but fail on the store? 可能,我没有解释清楚。我在上面的评论中的意思是Windows Store apps run sandboxed and have very limited access to the file system. For the most part, they can directly access only their install folder and their application data folder. They do not have permission to access the file system elsewhere 请查看 Rob 的博客:Skip the path: stick to the StorageFile
  • 反正AppX文件夹是不需要关心的,它只是一个调试部署文件夹。它与windows store中的包无关。
猜你喜欢
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 2015-09-29
  • 1970-01-01
  • 2012-09-14
  • 2012-03-14
  • 2020-11-27
相关资源
最近更新 更多