【发布时间】:2011-06-02 04:56:07
【问题描述】:
我有一个需要打包交付的应用程序。
- EXE 和 MSI 安装程序中什么是最好的,为什么?
- 是否有任何开源工具可以反编译 EXE 或 MSI?
【问题讨论】:
标签: winforms installation windows-installer exe
我有一个需要打包交付的应用程序。
【问题讨论】:
标签: winforms installation windows-installer exe
这取决于你说的是哪种EXE。
MSI 是由 Windows Installer 运行的安装程序包。如果您使用 Visual Studio 制作安装项目,它将为您提供 MSI 和 EXE。在这种情况下,EXE 只是一个引导程序(MSI or EXE)。在检查 Windows Installer 是否已安装后,它将运行 MSI。
如果您使用 InnoSetup 等其他工具,此 EXE 本身就是一个安装包,而不是引导程序。
关于您关于 MSI 编辑器的问题:Orca MSI Editor。
如果不需要非常复杂的安装程序,我建议使用 Visual Studio 安装项目,因为它很简单,但足够强大。
【讨论】:
现在许多安装程序在内部使用 MSI,尽管它们是作为 EXE 分发的。您需要一个 EXE 以确保已安装所有先决条件:例如 .NET 框架;如果不是,它会安装先决条件。然后它会提取 MSI 包来处理安装的其余部分。
MSI 提供了一些高级安装功能:
虽然学习这项技术需要一些时间。
您可以从 EXE 文件执行任何操作,而 MSI 仅用于安装。 Inno Setup 和 NSIS 安装包作为 exe 文件分发。他们有一种描述安装步骤的脚本语言。
WiX toolset 具有名为 dark 的 MSI 反编译器。
【讨论】:
【讨论】:
我在 serverfault.com 上发布了一些 MSI 优势(和问题)的摘要:
https://serverfault.com/questions/11670/advantages-of-using-msi-files
【讨论】:
MSI 是一个 Microsoft 安装程序,它比旧的 EXE 更新,Wise Installer 和许多其他人都支持它。它允许使用需要部署的内容(如 CAB 文件和注册表设置等)进行更智能的安装,并且可以检查以前的安装等。
MSI 仅用于安装,而 EXE 可以执行其他操作,例如运行。
我会使用 InstallShield 并构建一个 MSI
我不确定#2
【讨论】:
您可以告诉 Visual Studio 将您的应用程序制作成 MSI/EXE。如果那行得通并且做你想做的事,那就去做吧。创建安装程序需要您付出很多努力。
MSI 表示您正在使用 Microsoft 的安装程序。 Microsoft 有正当理由推荐(即不给您的应用程序认证)MSI。但是,好的 MSI 很难制作,所以我不推荐它,除非您需要对您的应用程序进行认证。
如果您不需要认证,我推荐Inno Setup,以及像ISTool 这样的前端。它易于使用,并为您提供简单的界面来执行最常见的安装任务。在紧要关头,它支持脚本,让您可以做任何它不支持的事情。
【讨论】: