【问题标题】:How do you "wrap" your application in an installer?您如何在安装程序中“包装”您的应用程序?
【发布时间】:2014-06-28 17:21:58
【问题描述】:

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

到目前为止,我已经编写了几个相当小的应用程序,但它们都包含一个可以“按原样”运行的可执行文件。这意味着实际的应用程序不需要任何安装即可使用,您只需在线下载文件,运行它即可开始使用。

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

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

【问题讨论】:

标签: windows installation exe wrapper


【解决方案1】:

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

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

我推荐使用WIX Toolset,这是一个由微软赞助的开源项目,用于构建安装包。 WIX 让您可以更好地控制整个设置过程。它有一些学习开销,但您会发现这是最灵活的。

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

【讨论】:

  • 感谢您的澄清帖子。我将看看 MSI 和 WIX 工具。
【解决方案2】:

【讨论】:

  • 第一个链接将完全解决我未来的很多问题。谢谢你。太糟糕了,我不能接受两个答案,我觉得 selbie 的答案很接近问题。
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
相关资源
最近更新 更多