假设我有一个MSI,它以.NET Framework为先决条件 我知道从VS2008安装项目生成的MSI将检测何时缺少pre-req并将指示用户安装它。
Q1 即可。从技术上讲,在MSI运行期间是否可以调用dotnetredist.exe(或者,我猜,任何任意的EXE)来处理这个pre-req,然后继续安装?我的意思是,我认为不是,如果我只限于VS2008生成的设置,但如果我使用WIX怎么办?如果我愿意写自定义动作怎么办?如果我可以使用Orca或脚本手动编辑MSI表怎么办?可能吗?
Q2 即可。这合法吗?许可是否允许?
答案 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将允许安装程序链接,在限制范围内。