C#Deployement保留文件在安装(C# Deployement retaining file

2019-07-29 04:05发布

我已经创建使用Visual Studio中的安装和部署项目和安装设置。 我安装设置它复制后的几个文件(XML)的使用应用程序的编程方式配置。 现在,如果用户再重新安装该设置,我需要询问用户,这些配置文件是否需要被覆盖或保留?

任何想法,如何能实现呢?

感谢和问候,弗兰

Answer 1:

看看文件版本控制规则适用于Windows安装程序。

总之,假设你指的这些XML文件是无版本的文本文件,MSI将比较创建和修改日期,并不会取代你说的更新程序更新的XML文件(安装后的时间)。

我建议,你需要考虑到让你希望确保一切工作的其他几个变量: 主要与次要升级和REINSTALLMODE属性。



Answer 2:

我发现,接近这种情况的最好办法是实施“保存修改”逻辑在您的应用程序可以通过设置反对。 这避免了您的设置复杂化,产生了配置过程,因为所有的逻辑嵌入到你的主EXE文件的更大的控制权。 这意味着你可以通过工艺步骤和调试它正常的“发展之路”。

要做到这一点,你可以安装你的“基础配置”文件到一个只读的位置,如

  • 的%ProgramFiles%\ MyCompany的\ MyApp的\的myconfig *。*

那么你的应用程序可以在启动检测用户配置文件 (或可写的共享位置 )是否存在现有的配置文件,并询问用户新的配置文件是否应该覆盖原来的配置或没有。 您还可以轻松实现对旧的配置备份功能。

为了每个用户问的问题只有一次部署后 ,正常apporach是标志HKLM与应用程序的最新安装版本,然后写在HKCU相应标志时复制操作已经完成或者用户驳回:

  • HKLM \ SOFTWARE \ MyCompany的\ MyApp的\版本2.0.0 =
  • HKCU \软件\ MyCompany的\ MyApp的\版本= 1.0.0

在上述情况下的应用程序版本2.0.0已经安装,但每个用户配置副本并没有为问题的用户运行呢。 一旦它运行HKCU版本将被设置为2.0.0,直至HKLM递增操作不被再次运行。



文章来源: C# Deployement retaining files over an installation