【问题标题】:Is It possible to install or run dotnetredist.exe (or any arbitrary EXE) as part of an .MSI?是否可以安装或运行 dotnetredist.exe(或任何任意 EXE)作为 .MSI 的一部分?
【发布时间】:2010-03-04 21:21:53
【问题描述】:

假设我有一个 MSI,它具有 .NET Framework 作为先决条件。
我知道从 VS2008 安装项目生成的 MSI 将检测到该 pre-req 何时丢失,并将指导用户安装它。

第一季度。从技术上讲,是否有可能在 MSI 运行期间调用 dotnetredist.exe(或者,我猜是任何任意 EXE),处理此 pre-req,然后继续安装?我的意思是,如果我将自己限制在 VS2008 生成的设置中,我认为不是,但是如果我使用 WIX 会怎样?如果我愿意编写自定义操作怎么办?如果我可以使用 Orca 或通过脚本手动编辑 MSI 表会怎样?是否可以?

第二季度。合法吗?许可证允许吗?

【问题讨论】:

    标签: .net wix windows-installer


    【解决方案1】:

    技术限制是一个 Windows 安装程序会话不能启动另一个。例如,一个 MSI 文件不能安装另一个 MSI 文件。

    只要不启动任何 Windows 安装程序会话,就可以从 MSI 文件启动可执行文件或脚本。这称为custom action

    .NET 安装程序 exe 绝对不能从 MSI 启动,因为它使用 Windows 安装程序会话。相反,您必须创建一个引导程序 setup.exe,它首先安装 .NET,然后启动您的 MSI。 wix 文档有 a topic which covers how to generate such a bootstrapper 和 msbuild。这不是真正的特定蜡;您可以将引导程序生成器任务与任何 MSI 文件一起使用。

    至于法律方面,我认为没有必要担心。毕竟它被称为可再发行

    【讨论】:

      【解决方案2】:

      安装 .Net 可能需要重新启动。我不知道你将如何处理它。中止安装?禁止重启?终止安装?我认为 MSI 事务在重新启动后不起作用。

      您必须拥有 Visual Studio 或免费提供的包含 .Net SDK/独立 .Net Frameword SDK 的 Windows SDK 的副本,并同意 EULA 中的许可和条款,才能将 dotnetredist.exe 与您的应用一起发布。

      【讨论】:

        【解决方案3】:

        第一季度。 ...或者,我猜,任何任意的 EXE ...

        第二季度。合法吗?许可证允许吗?

        重新分发任意 EXE 的合法性受 EXE 许可的约束。 'dotnetredist' 是专门为重新分发而授权的,所以没有问题。

        MSI 4.5 将允许在限制范围内进行安装程序链接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-12
          • 2013-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-22
          • 2015-05-05
          • 2020-06-21
          相关资源
          最近更新 更多