我看到有办法使用 PowerShell 从 Windows 10 获取Get-AppxPackage
或删除Remove-AppxPackage
UWP 应用程序。
我想知道是否有办法重置 UWP 应用程序?我需要它进行自动化测试,我宁愿重置 UWP 应用程序也不愿再次卸载并安装,因为这会减慢测试速度。
我看到有办法使用 PowerShell 从 Windows 10 获取Get-AppxPackage
或删除Remove-AppxPackage
UWP 应用程序。
我想知道是否有办法重置 UWP 应用程序?我需要它进行自动化测试,我宁愿重置 UWP 应用程序也不愿再次卸载并安装,因为这会减慢测试速度。
如果你想清除你的包的 ApplicationData 那么你想要
appdata = Windows.Management.Core.ApplicationDataManager.CreateForPackageFamily(pkgfamilyname)
appdata.ClearAsync()
有关ApplicationDataManager.CreateForPackageFamily()和.ClearAsync()的信息,请参阅 MSDN
我上次看时(尽管已经有一段时间了)Powershell 没有“等待”功能,所以不太可行。如果您想处理应用程序数据,您可能会发现APPDATA.EXE很方便。您可能会猜到我为什么写它...:P例如
APPDATA.EXE Clear foo.bar_1234567890abc
如果您希望将软件包重置为其最初安装的状态,那么不,除了卸载 + 安装之外没有其他 API
Remove-AppxPackage foo.bar_1.2.3.4_x86__1234567890abc
Add-AppxPackage foobar.msix
已安装软件包的“设置”重置选项实际上只是稍微提高了效率。您仍然需要完全取消注册并卸载软件包,然后为用户安装和注册它,因此它可能不是即时的。但这是真正将包重置为其初始状态的唯一方法。Windows 具有与包相关联的各种形式的用户数据(ApplicationData、IndexDB 等),以及在为用户安装包时记录和连接的系统状态(包是什么,它在哪里,用户拥有它,它的状态没有被篡改或不健康,更多)。真正将其“重置”为初始状态的唯一方法是完全删除然后添加。
如果您只需要擦除 appdata,那么 .ClearAsync 就是票。
我不知道有任何命令可以为您执行此操作(设置应用程序中可用的 UI 除外)。但是,您可以编写一个 PowerShell 脚本来清除应用程序文件夹中的应用程序数据文件(这不是官方解决方案,但根据我的试验似乎可以工作)。
去
C:\Users\{your_username}\AppData\Local\Packages\
并在那里找到您的应用程序的文件夹。有几个文件夹包含应用程序状态。
核选项是删除所有文件夹。然后应用程序在启动时会崩溃一次,然后系统会自动重置它并恢复文件夹。
我现在尝试的侵入性较小的选项似乎是保留文件夹并删除它们的内容,除了AC
文件夹,它似乎受系统保护。当我用我的应用程序尝试这个时,它成功启动而没有崩溃,并且系统自己重新创建了状态文件。
其余的应用程序文件存在于 中C:\Program Files\WindowsApps
,但它们只是应用程序 DLL 和内容文件,并且是只读的,因此它们根本不应该影响应用程序状态。
如果您使用共享发布者文件夹,您可能需要执行额外的删除操作。
对于 Windows 10 build 2004+,现在似乎有一个 powershell 命令Reset-AppxPackage
。
更新
我的错,它从20175 版开始可用。因此,应该在 20H2 可用。