如何在安装程序中“包装”您的应用程序?

时间:2014-06-28 17:21:59

标签: windows installer exe wrapper

首先,这可能是一个模糊的问题,可能没有结构良好的答案,因此可能不符合SO规则。

到目前为止,我已经编写了几个相当小的应用程序,但所有这些应用程序都包含一个可执行文件,该文件可以运行"按原样#34;。这意味着实际的应用程序并不需要事先使用任何安装,您只需在线下载文件,运行它就可以了。

大多数在线应用程序都要求您下载安装程序。然后设置一些首选项(即您要放置应用程序文件的位置,谁是主要用户等),完成后,安装开始解压缩(?)实际运行应用程序所需的文件。

我认为安装程序是一个包装器,其中包含您可能正在使用的代码和/或任何其他资源。任何人都可以向我指导有关此过程的一些相关信息吗?我没有相关的问题,也许我不清楚我在问什么,我只是对事情的运作感到好奇。

2 个答案:

答案 0 :(得分:1)

标准Windows Installer体验是通过创建称为MSI文件的安装程序包来完成的。 MSI在用户启动后,安装组件(文件,注册表项,运行时组件,其他安装程序包等)。可以将MSI安装体验配置为具有UI。通常的方法是股票“向导”UI,用户可以在选择设置选项(例如安装位置)时点击“下一步”。 MSI的优点在于它们自动带有一个“卸载程序”,显示在“控制面板”的“添加/删除程序”对话框中。如果用户取消设置(或无法安装),则会执行自动回滚。

Visual Studio通常包含一组名为“安装程序包”的项目类型,它们为您提供了创建基本安装程序包装器的支持。如果你要安装的只是少量文件,这可能会满足你的需求。

我建议使用由Microsoft赞助的WIX Toolset来构建安装程序包。 WIX为您提供了对整个设置过程的更多控制。它有一些学习开销,但你会发现这是最灵活的。

另一个快点。 Windows EXE很少“按原样”运行。无论是.NET EXE还是使用C / C ++构建的应用程序,通常都依赖于运行时,例如特定版本的.NET或Visual Studio CRT。通常,当您开发此类EXE时,它们确实在您自己的计算机上运行。这是因为Visual Studio为您安装了所有这些依赖项。将相同的可执行文件复制到运行旧版Windows的另一台计算机上,您可能会发现它无法运行。您需要快速了解如何嵌入.NET版本并将CRT嵌入到您的安装程序包中。

答案 1 :(得分:1)