Visual studio 2010 VS2010 Web安装项目未替换';web.config';文件

Visual studio 2010 VS2010 Web安装项目未替换';web.config';文件,visual-studio-2010,windows-installer,custom-action,web-setup-project,Visual Studio 2010,Windows Installer,Custom Action,Web Setup Project,我正在为我的MVC3 web应用程序使用VS2010 web安装项目。它与安装配合良好。但是,如果我更新MVC3 webapplication binary和Web安装项目的版本以进行升级(从旧版本的现有安装),它将不会替换目标目录上的Web.config文件。所有其他文件和目录都会被替换和更新,但只有“web.config”文件不会被web安装程序替换 每次更新Web应用程序中的任何内容时,我都会更改Web安装项目和MVC3应用程序的版本 我也尝试过更改“ProductCode”和“Upgra

我正在为我的MVC3 web应用程序使用VS2010 web安装项目。它与安装配合良好。但是,如果我更新MVC3 webapplication binary和Web安装项目的版本以进行升级(从旧版本的现有安装),它将不会替换目标目录上的Web.config文件。所有其他文件和目录都会被替换和更新,但只有“web.config”文件不会被web安装程序替换

每次更新Web应用程序中的任何内容时,我都会更改Web安装项目和MVC3应用程序的版本

我也尝试过更改“ProductCode”和“UpgradeCode”,但web.config文件仍然是相同的(第一版)

我设置了Web安装项目的以下属性

  • DetectNewErrorInstalledVersion-真
  • Removepreviousversions-True
  • restartwwservice-true
如果手动删除/删除现有的web.config文件,然后安装新版本,则会将新更新的web.config文件放入其中。只有当目标目录中存在可用的web.config文件时,才会出现此问题

我还尝试了自定义操作的“OnBeforeInstall”来删除或重命名现有的web.config文件,以便新的we.config将在安装中复制。但在这一点上,我发现所有文件都是在自定义操作方法执行之前复制的

请帮助我解决这个问题,或者建议一种向我的客户提供web安装项目的替代方法

提前谢谢

编辑:
我发现当我更改Web Setup project的版本时,它会自动更改productcode,但upgradecode仍然相同。

安装时,安装程序会检查要替换的每个文件的版本。所以,如果一个文件的版本相同,或者在两个安装程序之间没有更改,安装程序将不会替换它。但如果该文件不存在,安装程序将删除该文件

解决方案: 尝试在“costfinilize”之前删除文件。因此,在您的情况下,在“costfinilize”之前调用自定义操作来删除\删除文件

您可以使用Orca检查msi的所有自定义操作的执行顺序。

您是否尝试过手动更改旧web.config文件中的版本等?web.config文件没有任何属性可用于更改版本或编码您可以详细介绍该解决方案吗?什么是“成本有限化”?在VS2010中,您在哪里设置它?