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

时间:2010-03-04 21:21:53

标签: .net wix windows-installer

假设我有一个MSI,它以.NET Framework为先决条件 我知道从VS2008安装项目生成的MSI将检测何时缺少pre-req并将指示用户安装它。

Q1 即可。从技术上讲,在MSI运行期间是否可以调用dotnetredist.exe(或者,我猜,任何任意的EXE)来处理这个pre-req,然后继续安装?我的意思是,我认为不是,如果我只限于VS2008生成的设置,但如果我使用WIX怎么办?如果我愿意写自定义动作怎么办?如果我可以使用Orca或脚本手动编辑MSI表怎么办?可能吗?

Q2 即可。这合法吗?许可是否允许?

3 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

安装.Net可能需要重启。我不知道你将如何处理它。中止安装?禁止重启?终止安装?我认为MSI交易不会重启。

您必须拥有Visual Studio或包含.Net SDK /独立.Net Frameword SDK的免费Windows SDK,并同意EULA中的许可和条款,以便在您的应用中发布dotnetredist.exe。

答案 2 :(得分:0)

  

Q1。 ......或者,我猜,任何任意的EXE ......

     

Q2。这合法吗?许可是否允许?

重新分配任意EXE的合法性受EXE许可的约束。 'dotnetredist'专门用于再分发,所以没有问题。

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