2011-03-12 154 views
0

我必须迁移我们目前的软件安装到能够在Windows 7安装在Windows 7

这是在Visual C一个MFC应用程序++安装。安装并不复杂,但确实有一些复杂性。它必须检测以前是否安装了其他软件才能启动msi文件,如果不是,请让用户安装它。有一些合并模块和嵌套msi,一些自定义操作(在dll,vbscript等中)。我们的一个要求是,非管理用户必须能够安装该软件。最好在安装启动后不必同意任何消息。

我认为它现在完成的方式有点混乱,我不想只是迁移,而是做一个重构,让事情变得更好。所以我想提供一些建议,一个有最佳实践的网站,一些书(最好是有关Windows 7安装的具体信息)。任何形式的帮助将不胜感激。

顺便说一下,我们现在正在使用InstallShield,但如果有的话,我不介意更改为更好的工具。

has anyboy使用InstallShield LE for Visual Studio 2010?值得尝试一下吗?

感谢,

哈维尔

回答

1

NSIS安装有大量的功能,包括你所提到的。

+0

谢谢你vissi。但我正在寻找更多的书籍/文章与最佳做法和Windows 7安装。如果你推荐这个工具,请告诉我你为什么认为它比InstallShield更好。 – 2011-03-14 08:43:33

+0

嗯,在我看来有两个主要优势:小的安装程序大小(开销是~100kb),installshield软件包的大小通常是几MB,它是可脚本化的并且有很多常用的插件,你可以检查.net framework,java等安装在机器上;您还可以按照自己的喜好设计安装程序界面。 – vissi 2011-03-14 10:44:29

0

我不认为有一本书只处理Windows 7的安装。虽然有关于如何编写安装程序的文章。

这是最好的开始Microsoft User Experience Guidelines for Setup

用户不喜欢安装软件,所以现代的安装体验需要简单,高效,无故障。

如果你只能做三件事情...

  1. 使安装一样简单而轻便越好。请记住,用户不喜欢设置,他们忍受它。仔细查看每个问题,选项,页面和路径,并修剪掉完成设置不重要的所有事情。
  2. 适用于所有设置方案,包括无人值守安装,脚本安装和卸载。对于有效的无人值守安装,请确保设置阶段之间存在干净的分离。
  3. 设计您的安装程序,以便用户可以自行解决设置问题,还可以记录技术支持所需的信息以防万一。请记住,设置是所有用户必须成功完成的一项任务。

准则First Experience,这是第一个应用程序,也都是值得一读。
一篇较旧的文章Redesign Your Application's Installer讨论了关于共享组件的分离可执行文件和数据(每个用户和每台机器)等等。


在你的情况下,由于设置需要检测,如果他们错过安装附加组件,它更好地使用安装引导程序。

你有两个选择:

  1. 提升与引导程序,然后运行升高完成安装。
  2. 只有当您需要安装附加组件,您的应用程序的先决条件时才提升。

第二个选项仅适用于你的应用程序可以通过标准的用户的安装,即每用户安装,而不是每机器所有用户。在这种情况下,如果其他组件需要提升才能安装,并且至少其中一个未安装,则启动提升进程以安装所有先决条件。完成后,您继续以标准用户身份安装应用程序。

问题是只显示一次UAC确认:如果每个先决条件都显示他们自己的UAC确认,那真的很烦人。