【问题标题】:ASP.NET app MSI installer multiple instancesASP.NET 应用程序 MSI 安装程序多个实例
【发布时间】:2010-10-06 23:11:08
【问题描述】:

我希望能够从 VS08 生成一个可用于安装的 MSI,例如同一 IIS 中同一网站上同一应用程序的演示、暂存和生产版本。换句话说,用户需要控制他们想要多少个实例——我无法通过改变产品代码来预先生成它们(尽管实际上会有一个现实的上限为 10 )。 <EDIT>转换路线需要类似的先验知识 AFAICT(bott suggested this route,虽然它会起作用,但不会带来出色的客户体验)</EDIT>。

my question 的其他实例存在,没有答案:

理想的答案是带有 VS08 的 OOTB,但如果这是另一个死胡同,我不会感到惊讶。 (顺便说一句,我见过的关于 MSI ASP.NET 安装程序的最佳信息是 this scottgu post)。

MSDEPLOY 似乎是我的小菜一碟,所以我正在寻找一些包装它的东西,只是我希望能够支持 XP 和 Vista 等非服务器操作系统。

我看到了即将推出的 InstallShield 产品的迹象,它似乎可以做到这一点,基于 10 年前的痛苦,我很想避免,但并不完全反对切换到不那么痛苦的东西。一个附带的好处是我的 [TeamCity] CI 服务器不需要无缘无故地被 VS 的副本污染(不,我绝对不需要将它保留在那里运行 MSTEST:D)。

【问题讨论】:

  • 这还没有完全解决,所以还没有被接受

标签: asp.net visual-studio-2008 installation windows-installer


【解决方案1】:

我有一个 Windows 项目,我们使用 WIX 创建 MSI 文件。我们为每个不同的环境都有一个 WIX 文件。一旦我们的持续集成服务器完成构建,我们会得到一个“Setup”文件夹,其中包含用于开发、测试、模型和生产的单独 MSI 文件。它们中的每一个都被安装到具有单独 app.configs 的单独文件夹中。

它并没有像您想要的那样全部集成到一个 MSI 中,但它完成了类似的事情。

【讨论】:

  • 谢谢大卫,我已经做了类似的事情 - 为内部目的定制每个环境的 .vdproj。问题是用户无法在将其编译成 MSI 后(因此“我无法通过更改产品代码来预先生成它们”)
【解决方案2】:

你读过这个吗? Installing Multiple Instances of Products and Patches

我的建议是使用wix。您可以使用当前的 msi 并使用“dark”对其进行反编译。 dark 从您的 msi 创建您需要的所有 xml 文件。 然后您可以使用 wix 进行更改,然后您可以将这些步骤集成到您的 msbuild 过程中。

【讨论】:

  • 使用转换,根据msdn.microsoft.com/en-us/library/aa369528(VS.85).aspx,在我看来,您仍然需要预先生成设置。然后向 msiexec 添加一个参数以触发其中一个转换。
  • 我想我可以预先生成 10 并记录多个实例,一个 msiexecs 带有一个使用其中一个的参数。我一直希望有一个 GUI,允许他们选择实例和/或分配他们选择的“标签”给他们。否则他们必须记住“1”表示“测试”。
  • 话虽如此,我有一个好主意,我应该在 WixLand - 提到“黑暗”会赢得我的 +1 甚至更多,因为我担心转换成本。(得到另一个OOB 提到 Wix 是大孩子们使用的东西——猜猜我只是尽可能地推迟成为安装的大孩子!)
  • 另外,你可以直接通过db access api修改你的msi。对于那些多个实例,您只需要更改很少的内容。这可以用一个小的引导程序来完成。 msdn.microsoft.com/en-us/library/aa368250(VS.85).aspx
  • 嗨,Bernd,它们肯定有强大的功能,非常感谢您的指点。我确实倾向于在引用页面上支持“这些功能只能由自定义安装操作和创作工具使用”:P(当我最终攻击这个问题时会报告......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多