如何使用UWP卸载程序完全删除数据库?

5

我已经通过Desktop Bridge将XAF应用程序放入Windows Store。

当用户从Windows Store安装我的软件,然后选择卸载时, 我希望他们有完全卸载软件包括数据库的选项。 这样,如果他们稍后决定重新安装,就不会有任何问题。

目前,UWP卸载不提供删除数据库的选项(甚至不解释如何删除它)。 因此,用户可能会尝试通过Windows资源管理器删除数据文件 - 这仍然使LocalDB的某个实例在其数据库列表中保持条目。

因此,在删除数据库文件后第二次安装UWP程序时,程序会显示错误

"Login failed for user" 

此问题所述

我的连接字符串使用

(localdb)\mssqllocaldb

我该如何自动删除完全的数据库和内存?即我可以使用什么卸载事件,我应该在哪里重写它?我在桌面桥本身中看不到任何可执行代码。目前,我认为我可能需要在实际程序中放置“在卸载之前运行此选项”。或者作为解决方法,我应该为“用户登录失败”错误编写一个清理处理器。此问题相关。我正在使用Entity Framework 6.2和.Net Framework 4.7.2。桥接项目使用Windows 10版本1809,Build 17763(最小和目标)。

似乎有一些提示在 https://dev59.com/QmUp5IYBdhLWcg3wXGy8。 - Kirsten
原始数据库不会导致“用户登录失败”,您是否检查了其他相关问题? - Nico Zhu
@NicoZhu-MSFT 是的,现在情况更糟了。https://dev59.com/YrDla4cB1Zd3GeqP_aVT - Kirsten
1
@tiagoperes 这并不会完全删除数据库,而这正是我想要的。但这可能是重新安装问题的一个解决方法。 - Kirsten
@KirstenGreed,也许你并不需要采取如此激烈的解决方案来获得所需的结果/修复你正在经历的问题。因此,我的建议是调整当前的问题并删除表格。如果你在这个解决方案的过程中仍然遇到问题,那么删除数据库将是下一步。 - Tiago Martins Peres
显示剩余6条评论
1个回答

0

请参阅在新数据库上使用EF Core入门通用Windows平台(UWP)。它介绍了迁移的使用。迁移旨在帮助您更改数据库设计并在生产中实现更改。然而,迁移可能会令人沮丧,因为Microsoft没有充分记录该功能。有一个列表列出了SQLite不支持的迁移功能;从一开始就了解这一点非常重要。


如果您需要不同的答案,请在此答案下发表评论。 - Rinzler786
这个问题与OneNote无关。 - Kirsten
哦。抱歉,我知道如何使用一个笔记来完成它,但我以为那就是所需的。 - Rinzler786
我更新了我的问题,以显示我正在使用EF 6.2。我还在使用迁移,我不认为这与问题有任何关系。 - Kirsten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接