我的应用程序将用户输入的应用程序设置保存在XML文件中。现在假设我已经卸载了我的应用程序,但设置文件(xml文件)仍然存在。它没有被删除。我想为我的下一个安装使用该设置文件。有没有什么办法可以在安装过程中询问用户,例如“您是否想使用现有设置?”。所以我不需要在新安装后重新初始化设置。要求用户在新安装过程中使用旧安装设置
回答
是的,你可以做到这一点,首先你必须确保已经创建的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
{
}
}
}
最简单的解决方案是不使这个安装程序的问题。使settings.xml成为未包含在安装程序中的文件。首次运行该应用程序时,请求设置并设置XML。现在,当安装程序卸载时,它会自动将其保留。如果他们重新安装,你的应用程序仍然会找到settings.xml。
您还可以让安装程序使用安装的日期时间填充注册表值,并让应用程序将其放入settings.xml中。如果当前的注册表值和xml值是不同的时间戳,你知道有重新安装,你可以选择问“你想保留?”问题,如果你想。
现在安装程序是一个简单的文件复制软件包,没有可能会失败的不需要的自定义操作。
其实我想问在卸载时用户也..是否要删除文件或不..谢谢额外的信息。 –
Windows Installer的最佳做法是永不删除用户数据。部分原因是,无法访问应用程序的所有用户的用户配置文件。 –
- 1. 安装程序要求安装.NET 4.0,而VS2010只使用3.5。
- 2. 使用VS安装程序在安装过程中验证用户输入
- 3. 安装要求
- 4. 更改安装位置,如果旧的安装使用
- 5. 在旧应用程序中安装omniauth
- 6. 如何使用IBM Spark安装程序设置安装路径?
- 7. Windows安装程序安装旧文件
- 8. 使用node.js v0.6.18安装socket.io。 WS failes在安装过程中
- 9. Python模块:在安装过程中使用但未安装
- 10. 在安装时或安装后设置选项应用程序
- 11. 的AppX中安装的应用程序可以删除旧的安装使用MSI安装的应用程序?
- 12. Inno安装程序:在安装过程中重新启动
- 13. 在安装过程中创建一个新的用户帐户
- 14. mongodb安装 - 要求?
- 15. 在安装过程中取消应用程序安装
- 16. 在实际安装位置安装设置的更新
- 17. 取消安装程序安装在Visual Studio安装程序设置
- 18. 使用pip安装pysaml2 - xmlsec1要求
- 19. 要求使用MUI安装组件
- 20. 重新安装MYSQL(windows) - 如何使用新安装获取旧数据?
- 21. 如何在安装旧版本的同时使用新的Python安装?
- 22. 如何在使用.NET的安装项目安装主应用程序之前安装其他设置?
- 23. TestFlight用户要求多次安装应用程序
- 24. 如何在安装程序中绕过/禁用UAC安装
- 25. 更新安装在用户设备上的BlackBerry应用程序
- 26. 在安装过程中查看所有用户配置文件
- 27. 设计安装过程
- 28. 需要帮助设置重新安装模式和重新安装
- 29. 使用pip安装需求
- 30. 如何在安装时设置应用程序设置(通过安装程序类)
您是否意识到,这种写入的自定义操作会导致安装程序在静默安装期间抛出模态对话框? –
谢谢..它解决了我的问题 –
@ManakRamSeervi很高兴它帮助你:) – Kurubaran