【问题标题】:VS2010 Web Setup Project not replacing 'web.config' fileVS2010 Web 设置项目不替换“web.config”文件
【发布时间】:2013-08-16 06:26:44
【问题描述】:

我正在为我的 MVC3 网络应用程序使用 VS2010 网络设置项目。它在安装时工作正常。但是,如果我更新 MVC3 webapplication 二进制文件和 Web 设置项目的版本以进行升级(从旧版本的现有安装),它将不会替换目标目录上的 web.config 文件。所有其他文件和目录都被替换和更新,但只有“web.config”文件没有被 Web 设置替换。

每当我更新 Web 应用程序中的任何内容时,我都会更改 Web 设置项目和 MVC3 应用程序的版本。

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

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

  • DetectNewerInstalledVersion - True
  • 删除以前的版本 - 是的
  • 重启WWWService - 真

如果我手动删除/删除现有的 web.config 文件,然后安装新版本,它将放置新的更新的 web.config 文件。仅当目标目录中存在可用的 web.config 文件时才会出现此问题。

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

请帮助我解决此问题或建议另一种方法来向我的客户提供网络设置项目。

提前致谢!

编辑: 我发现当我更改Web Setup项目的版本时,它会自动更改productcode,但upgradecode还是一样。

【问题讨论】:

  • 您是否尝试过手动更改旧 web.config 文件中的版本等?
  • web.config 文件没有任何属性可以更改版本或代码

标签: visual-studio-2010 windows-installer custom-action web-setup-project


【解决方案1】:

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

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

您可以使用 Orca 来检查 msi 的所有自定义操作的执行顺序。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx

【讨论】:

  • 您能否详细说明该解决方案?什么是“成本最终化”? VS2010你在哪里设置的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多