防止Web.config文件被覆盖

时间:2014-05-22 15:04:00

标签: msbuild wix

我正在使用Windows Installer XML构建Web应用程序的设置。 大多数文件是使用自定义构建文件中的加热工具收集的。 这包括在安装时修改的Web.config。

有没有办法阻止此文件被覆盖(例如,如果我正在运行更新?)

1 个答案:

答案 0 :(得分:2)

如果MSI安装了配置文件,然后自定义操作或应用修改了它,那么由于file overwrite rules,它不会在更新时被替换。

如果您将其卸载,它将被删除,并且包括在升级早期具有RemoveExistingProducts的主要升级。

当MSI安装数据文件时,它将创建日期和修改日期设置为相同,以便它可以检测文件在系统上安装后是否已被修改。在安装期间修改web.config文件(可能是在MSI将其放在系统上之后)是修改文件的代码。这个东西很容易测试。使用MSI安装数据文件并检查日期,然后修改它并再次检查日期。类似地,在安装后查看配置文件的修改和创建日期 - 它们应该是不同的,因此MSI更新不会像之前描述的那样替换它。