是否可以作为 .MSI 的一部分安装或运行 dotnetredist.exe(或任何任意 EXE)?

Che*_*eso 3 .net windows-installer wix

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

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

Q2 . 合法吗?许可证允许吗?

Wim*_*nen 5

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

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

.NET 安装程序 exe 绝对无法从 MSI 启动,因为它使用 Windows 安装程序会话。相反,您必须创建一个引导程序 setup.exe,它首先安装 .NET,然后启动您的 MSI。wix 文档有一个主题涵盖了如何使用msbuild 生成这样的引导程序。这实际上并不是 wix 特有的;您可以将引导程序生成器任务与任何 MSI 文件一起使用。

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