【问题标题】:How can we migrate existing web applications from .net 2.0 to 4.0 in installshield project我们如何在 installshield 项目中将现有的 Web 应用程序从 .net 2.0 迁移到 4.0
【发布时间】:2013-03-04 16:15:18
【问题描述】:

我们有许多安装和配置 IIS 应用程序的 Installshield 项目。我们已经发布了不同应用程序的多个版本(3 个应用程序的 7 个以上版本),现在想升级以使用 .net 4.0 而不是 2.0 和 3.5。

修改“Internet 信息服务”设置后,将网站/应用程序上的 ASP.NET 版本更改为 4.0.30319,将应用程序池下的 .Net Framework 版本更改为 v4.0,安装程序正确创建应用程序在 IIS 6 及更低版本中使用 4.0 版本,在 IIS 7 及更高版本中它正确地将池设置为使用 v4.0,但升级不适用于任何目标。

升级安装正常,但虚拟目录或应用程序池的 .Net 版本保持不变。手动更改当然可以,但这会导致更多的支持问题。

我尝试将升级更改为重大升级,但没有成功,我目前正在执行自定义操作以在安装后更改 .Net 版本,但我对 Installshield 的此功能没有太多经验。

有人遇到过这个问题吗?有没有首选的方法来实现这一目标? (自定义操作或 .Net 安装程序类,WIX 不是一个选项)

谢谢

【问题讨论】:

  • 您查看过安装程序日志吗?这些组件是否正在重新安装?
  • 不,他们不是。我得到:找到属性“名称”值为:MyApplicationPool InstallShield 20:44:57 的元素:AppPool 已经存在。 InstallShield 20:44:57:应用程序池已经存在。
  • 这就是我卡住的地方。我们如何让安装程序更改现有池上的值?
  • MichaelU 或许能够更详细地了解 IS 的 IIS 行为。对我来说,我必须把它扔到实验室里试一试。

标签: installation installshield custom-action


【解决方案1】:

无需花费数小时深入研究...一种快速的解决方案是在新安装程序中重命名应用程序池,并让重大升级创建新的并删除旧的。毕竟,如果您从 .NET 2.0 更改为 4.0,从某种意义上说,您正在创建一个不向后兼容的组件,因此应该是一个新组件。

【讨论】:

  • 非常感谢,这绝对是重大进展。它适用于 IIS 7+(因为 Asp.Net 版本在应用程序池中),但不适用于 IIS 6(ASP.net 版本在应用程序中设置)。有没有办法在安装过程中修改现有属性?应用程序保留旧的 appPool。日志显示:InstallShield 22:03:49:应用程序已存在 InstallShield 22:03:49:SetSSIEnableCmdDirective,INSTALLSHIELD_SSI_PROP 值为“”。 InstallShield 22:03:49:什么都不做,用户偏好是忽略 SetSSIEnableCmdDirective
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 2011-08-22
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多