【问题标题】:Delete tables from Database during application uninstallation在应用程序卸载期间从数据库中删除表
【发布时间】:2014-07-31 03:00:44
【问题描述】:

这是否可以在 .NET C# 中放置任何带有安装项目的脚本,以便我可以在从控制面板卸载安装程序时从表中删除几行或从数据库中删除整个表?我需要在卸载 Windows 应用程序时从其数据库中删除所有数据

【问题讨论】:

  • 当你说“不工作”时,你的意思是“不被调用”吗?自定义安装操作的一些故障排除提示: 1. 您可以在 Uninstall 方法中调用 System.Diagnostics.Debugger.Launch() 以在卸载期间强制设置断点。 2. 如果它没有在该行中断,您应该确认安装项目中的自定义卸载操作连接正确。如果这两个都有效,您需要做的就是连接到您当前使用的任何类型的 Db 驱动程序并执行必要的操作。
  • 我按照你说的试过了,现在可以了。谢谢

标签: c# .net setup-project uninstallation


【解决方案1】:

您可能必须准确定义“它对我不起作用”的含义。该代码是一个卸载自定义操作,但除非您将其作为卸载自定义操作添加到安装项目中,否则它不会被调用,如果这就是您所说的它不起作用的意思。假设您将其添加为卸载自定义操作,这些东西确实有效。

它不起作用的另一种方式是您可能看不到 console.writeline 工作。这不是在交互式用户的 shell 中运行的应用程序代码。这是来自使用系统帐户运行的 msiexec.exe 进程的回调,因此它很可能不会让您做任何与交互式用户桌面交互的操作,而且我不清楚如果您尝试写入会发生什么系统帐户的控制台,因为我怀疑它有一个。这也意味着,如果您要添加代码以从数据库中删除表,那么数据库需要允许系统帐户访问,默认情况下可能不允许这样做。

【讨论】:

    【解决方案2】:

    只需从 sql 中删除表,然后进行卸载

    删除表名 从表名中删除 *row where 条件

    【讨论】:

    • 我到处都查过了,谁能给个主意。如果有人愿意,我可以详细说明情况。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 2019-03-20
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多