Chr*_*ett 5 c# configuration setup-project
我们目前有4个客户端软件安装程序:
它们之间的唯一区别是安装程序包含Crystal Reports可再发行文件,而Update不包含.测试和生产只是指定它们运行的环境,唯一的区别是Client.exe.config文件中有一行.
愚蠢,我知道,这就是为什么我在删除Crystal Reports后用一个安装程序替换它们的原因.新安装程序将所选环境写入setup.config,该文件由file属性引用(请参阅此处).
"file"属性是使用此新安装程序的配置文件的新属性.我遇到的问题是,如果我们修改旧安装上的Client.exe.config文件,然后运行新安装程序,配置文件永远不会使用"file"属性进行更新.
有没有办法强迫它更新文件?RemovePreviousVersions并不完全有效,因为它是一个不同的安装程序,除非我误解了一些东西.我当前的想法可能会起作用,就是在OnBeforeInstall方法中添加代码以将旧的Client.exe.config重命名为备份文件,因此它总是会编写新的.看起来安装程序本身应该有一个更简单的解决方案.有任何想法吗?
编辑:在调用base.OnBeforeInstall()之前将旧的配置文件重命名为Client.exe.config.old不起作用.它重命名了该文件,但从未编写过新文件.
非版本化文件是用户数据 - 如果修改日期晚于计算机上文件的创建日期,请勿安装该文件,因为会删除用户自定义。如果修改日期和创建日期相同,请安装该文件。如果创建日期晚于修改日期,则认为该文件未修改,请安装该文件。
你有一些选择:
包括修改文件的自定义操作。这可能是脚本或 .NET 代码。
照你说的做——把现有的文件移开。安装程序不会停止。但是你需要确保它按照你想象的顺序发生。您可能需要Orca来确定顺序。
包括一个自定义选项以将创建日期设置为“今天”。使用脚本化的自定义操作,使用Scripting.FileSystemObject,这应该非常简单。然后 Windows 安装程序将覆盖它。
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |