2013-10-21 35 views
-2

我的应用程序将用户输入的应用程序设置保存在XML文件中。现在假设我已经卸载了我的应用程序,但设置文件(xml文件)仍然存在。它没有被删除。我想为我的下一个安装使用该设置文件。有没有什么办法可以在安装过程中询问用户,例如“您是否想使用现有设置?”。所以我不需要在新安装后重新初始化设置。要求用户在新安装过程中使用旧安装设置

回答

0

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

您必须将安装程序类添加到您的设置项目中。在安装方法内检查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 
      { 

      } 
     } 
} 
+0

您是否意识到,这种写入的自定义操作会导致安装程序在静默安装期间抛出模态对话框? –

+0

谢谢..它解决了我的问题 –

+0

@ManakRamSeervi很高兴它帮助你:) – Kurubaran

0

最简单的解决方案是不使这个安装程序的问题。使settings.xml成为未包含在安装程序中的文件。首次运行该应用程序时,请求设置并设置XML。现在,当安装程序卸载时,它会自动将其保留。如果他们重新安装,你的应用程序仍然会找到settings.xml。

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

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

+0

其实我想问在卸载时用户也..是否要删除文件或不..谢谢额外的信息。 –

+0

Windows Installer的最佳做法是永不删除用户数据。部分原因是,无法访问应用程序的所有用户的用户配置文件。 –

相关问题