【问题标题】:Asking user to use or not the old installation setting during new installation在新安装期间询问用户是否使用旧安装设置
【发布时间】:2013-10-29 15:44:15
【问题描述】:

我的应用程序将用户对应用程序设置的输入保存在 XML 文件中。现在假设我已经卸载了我的应用程序,但设置文件(xml 文件)仍然存在。它没有被删除。我想在下次安装时使用该设置文件。有没有办法在安装过程中询问用户,比如“你想使用现有设置吗?”。这样我就不需要在新安装后再次初始化设置了。

【问题讨论】:

    标签: winforms windows-installer setup-deployment


    【解决方案1】:

    是的,您可以这样做,首先您必须确保在卸载应用程序时不会删除已创建的 XML 文件。默认情况下,当您卸载应用程序时,使用 MSI 部署的文件将在卸载时被删除。为防止这种情况发生,请转到该特定文件属性并将Permanent 设置为True

    您必须将安装程序类添加到您的设置项目中。在 install 方法中检查 XML 文件是否存在。如果然后向用户显示确认消息。根据用户偏好保留旧的 xml 文件或添加新文件以再次保存新设置。

    public override void Install(System.Collections.IDictionary stateSaver)
    {
        //Invoke the base class method
        base.Install(stateSaver);
    
        if (File.Exists("XML File path"))
           {
               DialogResult result = MessageBox.Show("Do you want to use existing setting?","",MessageBoxButtons.YesNo);
    
            if (result.Equals(DialogResult.Yes))
               {
    
               }
            else
               {
    
               }
           }
    }
    

    【讨论】:

    • 您是否意识到编写的此自定义操作会导致安装程序在静默安装期间弹出模式对话框?
    • @ManakRamSeervi 很高兴它帮助了你:)
    • 并介绍了其他几个你还不知道的问题。祝你好运。 :)
    【解决方案2】:

    最简单的解决方案是不要让这成为安装程序问题。使 settings.xml 成为安装程序中未包含的文件。在第一次运行应用程序时询问设置并设置 XML。现在,当安装程序卸载时,它会自动将其留在后面。如果他们重新安装,您的应用仍会找到 settings.xml。

    您还可以让安装程序使用安装日期时间填充注册表值,并让应用程序将其放入 settings.xml。如果当前注册表值和 xml 值是不同的时间戳,则您知道有重新安装,您可以选择询问“您要保留吗?”问你是否愿意。

    现在安装程序是一个简单的文件复制包,没有可能失败的不必要的自定义操作。

    【讨论】:

    • 其实我也想在卸载过程中询问用户..他是否想删除文件..感谢您提供额外的信息。
    • Windows Installer 最佳实践是永远不要删除用户数据。部分原因是可能无法访问该应用所有用户的用户资料。
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多