防止在安装期间覆盖.NET配置文件

时间:2009-07-30 22:21:20

标签: .net windows-installer app-config installshield

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

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

在InstallShield项目中,myapp.exe.config设置为使用Windows Installer Versioning Rules。我甚至尝试将myapp.exe.config的create / mod日期设置得很旧(1/1/1999),这样它就不会覆盖目标系统上的文件。

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

4 个答案:

答案 0 :(得分:1)

在isxmlinstall中依次设置条件为“NOT Installed AND NOT PATCH” isxmlinstall是升级时的函数,升级时不会启动。

答案 1 :(得分:1)

检查安装程序中.config文件的属性,如果它被标记为密钥项,并且用户已经修改了它,因为它已安装,系统将使用MSI替换它相信它被损坏并需要修理。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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