5

我正在使用 InstallShield 2010 Express 安装 .NET WinForms 应用程序。最新的 InstallShield 项目是一次重大升级,因此我使用了升级路径部分来允许从我的应用程序的早期版本进行升级。

问题是在安装最新升级时,初始安装期间所做的配置设置(写入 Program Files\MyCompany\MyApp\myapp.exe.config)被覆盖。这意味着用户必须再次进行所有配置设置 - 不好。

在 InstallShield 项目中,myapp.exe.config 设置为使用Windows Installer 版本控制规则。我什至尝试将 myapp.exe.config 的创建/修改日期设置得很旧(1999 年 1 月 1 日),这样它就不会覆盖目标系统上的文件。

除此之外,安装程序工作正常。如何防止此文件被覆盖?

4

4 回答 4

1

检查安装程序中 .config 文件的属性,如果它被标记为关键项目并且用户在安装后对其进行了修改,则系统将使用 MSI 替换它,认为它已损坏并需要修复。

于 2011-02-20T18:20:09.813 回答
1

在 isxmlinstall 中按顺序设置条件,使用“未安装且未修补” isxmlinstall 是用于升级的功能 升级时 xml 不会启动。

于 2011-02-01T15:57:43.840 回答
0

Installsheild 没有“before_install”脚本部分吗?您可以复制现有的配置文件,并在安装完成后覆盖新的配置文件。

于 2009-07-30T22:40:49.327 回答
0

尝试使用 ApplicationSettingsBase.Upgrade() 或 ApplicationSettingsBase.GetPreviousVersion()

http://msdn.microsoft.com/en-us/library/system.configuration.applicationsettingsbase.upgrade.aspx

于 2011-01-01T18:26:56.523 回答