我目前正在使用Visual Studio 2010中的Visual Studio Installer(安装项目)作为MyProgram的安装程序 . 它有一些奇怪的错误,并不是很可定制,所以我想切换到另一个安装程序产品 . 这是我的要求:
-
必须免费(并获得商业使用许可)
-
如果客户端没有安装Windows Installer 3.1和.NET Framework 4.0,则必须安装它们
-
如果安装程序不可用,安装程序将下载它们
-
用于检测.NET Framework并下载它的代码必须由Microsoft编写(我不希望将来更新硬编码的URL和注册表项) . 我知道Windows SDK包含一个安装程序来执行此操作(C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ Bootstrapper)
-
将来,当.NET Framework 5发布且MyProgram使用它时,不需要更改安装程序代码,更新的安装程序产品应该看到MyProgram现在使用.NET Framework版本5并将安装
以下是我目前的选择:
Visual Studio Installer:
-
使用引导程序Setup.exe自动检测/下载/安装Windows Installer和.NET Framework(好!)
-
有限/越野车功能(Uninstall shortcuts in the Start Menu cause empty folders to be left behind during uninstall,asking the user if they want a desktop shortcut requires a lot of work等)
NSIS:
- 本身不支持.NET Framework,因此adding it as a prerequisite需要过多的编码,硬编码的URL等 .
Inno Setup:
- 本身不支持.NET Framework,因此adding it as a prerequisite需要过多的编码,硬编码的URL等 .
WiX:
- 陡峭的学习曲线......不确定我是否想要花费数周的时间来学习它,以发现它与Visual Studio Installer具有相同的卸载问题(因为它们都使用MSI文件)
InstallShield LE 2010:
- 下载它需要我设置一个假的电子邮件帐户注册只是为了下载它 . 然后一旦安装它必须联系公司's servers and transmit some private information to them before I'米甚至允许尝试免费版本 . 这是DRM最阴险的形式,我不会接受它 .
2 回答
WiX v3.5目前处于测试阶段,即将发布 . 它是最新成员,Burn,是一个引导程序/ chainer,旨在完成您所追求的目标 .
WiX is 陡峭的学习曲线,主要是因为你必须学习MSI来做任何复杂的事情 . 但是,它确实符合您的要求 .
我的选择可能就是NSIS,因为编写安装程序的脚本非常简单 . 尽管添加.NET先决条件是手动的,但如何理解并自由发布 .
似乎将我的安装程序产品更改为WiX是最佳解决方案 . 我能够在很短的时间内用它创建一个简单的安装程序,它可以正常工作 .
至于引导程序,当我等待"Burn"被释放时,我将能够使用this tutorial包含Windows SDK引导程序 .