首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#部署通过安装保留文件

C#部署通过安装保留文件
EN

Stack Overflow用户
提问于 2009-06-23 11:56:31
回答 2查看 612关注 0票数 0

我已经使用Visual studio创建了一个安装和部署项目,并安装了该安装程序。在我安装安装程序后,它复制了一些文件(XML),这些文件在使用应用程序时是以编程方式配置的。现在,如果用户再次重新安装此安装程序,我需要询问用户这些配置的文件是需要覆盖还是需要保留??

有没有关于如何实现这一点的想法?

谢谢和问候,弗兰

EN

回答 2

Stack Overflow用户

发布于 2009-06-23 16:24:52

查看file versioning rules for Windows Installer。

简而言之,假设您引用的这些XML文件是未版本化的文本文件,MSI将比较创建日期和修改日期,并且不会替换您所说的以编程方式更新的XML文件(安装后时间)。

我建议您需要考虑其他几个变量,以确保事情按您预期的方式工作:major vs. minor upgradeREINSTALLMODE属性。

票数 2
EN

Stack Overflow用户

发布于 2009-06-30 02:28:51

我发现处理这种情况的最好方法是在应用程序中实现“保留更改”逻辑,而不是通过设置。由于所有逻辑都嵌入在主EXE文件中,因此可以避免使设置复杂化,并对配置过程进行更好的控制。这意味着您可以逐步完成该过程,并以正常的“开发方式”对其进行调试。

要实现这一点,您可以将您的“基本配置”文件安装到只读位置,例如

  • %ProgramFiles%\MyCompany\MyApp\MyConfig*.*

然后,您的应用程序可以在启动时检测user profile (或可写共享位置)中是否存在现有配置文件,并询问用户新的配置文件是否应覆盖现有配置。您还可以轻松地实现旧配置的备份功能。

为了在部署后为每个用户只询问一次问题,通常的做法是使用应用程序的最新安装版本标记HKLM,然后在复制操作完成或用户取消复制操作时在HKCU中写入相应的标记:

  • HKLM\Software\MyCompany\MyApp\Version = 2.0.0
  • HKCU\Software\MyCompany\MyApp\Version = 1.0.0

在上面的场景中,已经安装了2.0.0版的应用程序,但是还没有为相关用户运行每用户配置副本。一旦运行,HKCU版本将被设置为2.0.0,并且该操作不会再次运行,直到HKLM递增。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1032101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档