2

I have a WPF app that I am planning on deploying with the Windows Application Packaging Project in Visual Studio that makes the MSIX bundle for installations and future updates. The installer automatically installs the app in C:\Program Files\WindowsApps. This is fine until the program needs to cache some data or it needs to modify the appsettings file since the app does not have permission to get to these resources.

Is there a setting I can change in the packaging properties/manifest so it can install somewhere else so I can avoid these problems?

4

2 回答 2

5

事实上,只有 Windows 可以在安装 msix 包时写入%ProgramFiles%\WindowsApps (按设计)。如果您的应用正在安装文件夹中写入日志文件或其他数据,它将崩溃。

您需要更新代码以写入 %AppData%,或者,如果您无权访问代码,请使用包支持框架来修复它。您可以在此处阅读更多信息: 包支持框架(又名 PSF)

PSF 带来了对 API 重定向和挂钩的支持。因此,您可以修复无法在安装文件夹中写入文件的应用程序(不再允许这样做)并将其重定向到推荐的位置,或者只是更新应用程序的工作目录。

于 2021-01-28T06:23:08.880 回答
3

如上所述,您不能在 MSIX 包的安装位置写入 - 这是设计使然。

对于不再处于活跃开发者之下的应用程序,确实使用 Packafe 支持框架是修复它们的唯一方法。但是,据我所知,您正准备启动该应用程序,因此您可以访问其代码。

在这种情况下,建议您将所有应用设置保存在 AppData\Roaming 文件夹中。对于部署为 MSIX 的应用程序,Windows 将自动将其重定向到 Packages 文件夹下,但这由操作系统自动处理,因此您无需担心。更多细节如下。

如何在 AppData\Roaming 而不是 AppData\Local\Packages 下保存数据

于 2021-01-28T07:43:56.187 回答